UIButton center从segue返回后移回默认位置



我有一个按钮,使用setCenter做动画和位置更新,但在我segue到一个新的视图控制器,然后返回到以前的视图控制器(一个持有按钮)按钮的中心被设置回默认值。我在按钮上没有任何约束,我尝试在viewWillAppear方法中再次设置按钮的中心,但我没有任何运气。如有任何帮助,我将不胜感激。

这是在IBAction中,按钮沿着y轴移动

if (!helpViewHidden)
{
    [UIView animateWithDuration:0.75 animations:^{
        self.login.center = CGPointMake([[UIScreen mainScreen] bounds].size.width/2, self.helpButton.frame.origin.y + 100.0);
    } completion:nil];
}
else
{
    [UIView animateWithDuration:0.75 animations:^{
        self.login.center = CGPointMake([[UIScreen mainScreen] bounds].size.width/2, self.helpView.frame.origin.y + 120.0);
    } completion:nil];
}
helpViewHidden = !helpViewHidden;

这是viewWillAppear方法

显然self.login是我的问题。

[self.login setCenter:CGPointMake([[UIScreen mainScreen] bounds].size.width/2, self.helpButton.bounds.origin.y + 100)];

谢谢!

除非你关闭了自动布局,否则系统会为你在IB中创建的任何视图添加约束。如果你通过设置帧改变了对象的位置,当视图被重绘时,自动布局系统会使该视图恢复到其约束决定的位置。因此,您要么需要关闭自动布局,要么通过操纵其约束来改变按钮的位置。要做到这一点,最简单的方法是为需要更改的约束创建IBOutlet,并在代码中更改其常量值。

相关内容

最新更新