我正在爲iPhone 5的更大屏幕更新iPhone應用程序,並且似乎存在與animateWithDuration:
有關的問題。在我打開自動佈局之前,當UITextField成爲第一響應者時,界面元素會在屏幕上稍微向上移動,並在UITextField失去其第一響應者狀態時向下移動回原來的位置。現在,他們只是隨便飛起來,離開屏幕,我不知道爲什麼。我移動的對象與下面的代碼(這曾與自動版式關閉):AutoLayout和animateWithDuration問題
[UIView animateWithDuration:.25 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
int offset = 160;
[object1 setFrame:CGRectMake(0, -offset, object1.frame.size.width, object1.frame.size.height)];
[object2 setFrame:CGRectMake(object2.frame.origin.x, object2.frame.origin.y-offset, object2.frame.size.width, object2.frame.size.height)];
[object3 setFrame:CGRectMake(object3.frame.origin.x, object3.frame.origin.y-offset, object3.frame.size.width, object3.frame.size.height)];
}
completion:^(BOOL finished){}];
是否有事可做,試圖通過一個恆定移動的對象?即使當我將offset
設置爲0
時,所有對象仍然飛離屏幕。我嘗試過檢測設備具有哪個屏幕,並通過不同的量移動對象,但這也沒有奏效。有人有任何想法嗎?
在此先感謝!
自動佈局和幀動畫相互衝突。我認爲這是iOS 6最大的錯誤(很多)。有關解決方案,請參閱我的書:http://www.apeth.com/iOSBook/ch17.html#_animation_and_autolayout – matt