2014-06-23 73 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

啊!非常感謝,這是它! –