2014-06-23 41 views
0

我有一个按钮,可以动画并使用setCenter相应地更新位置,但在继续到新的视图控制器后返回到前一个视图控制器(一个按住按钮)按钮的中心被设置回默认值。我对这个按钮没有任何限制,我尝试在viewWillAppear方法中再次设置按钮的中心,但我没有任何运气。任何帮助,将不胜感激,谢谢。UIButton中心从segue返回后移回到默认位置

这是一个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)]; 

谢谢!

回答

1

除非您关闭自动布局,否则系统会为您在IB中创建的任何视图添加约束。如果您通过设置框架来更改对象的位置,则自动布局系统将在视图重绘时使该视图恢复到其约束确定的位置。所以,你需要关闭自动布局,或者通过操纵约束来改变按钮的位置。最简单的方法是将IBOutlet创建为需要更改的约束,并在代码中更改其常量值。

+0

啊!非常感谢,这是它! –