2
我有一個包含兩個視圖的視圖控制器。我需要的是,在視圖控制器被推動後,頂部視圖(_sidepanelview)向左移動消失在屏幕上。屏幕出現動畫視圖出錯ios
這裏是我寫的:
-(void)viewDidAppear:(BOOL)animated{
CGRect newsidepanelviewposition = _sidepanelview.frame;
newsidepanelviewposition.origin.x = -_sidepanelview.frame.size.width;
[UIView animateWithDuration:0.5 delay:1.0 options:UIViewAnimationOptionCurveEaseIn animations:^{
_sidepanelview.frame = newsidepanelviewposition;
} completion:^(BOOL finished) {
NSLog(@"Done!");
}];
}
的問題是,當我運行的應用程序,視圖控制器被推遲後,視圖_sidepanelview從屏幕上消失,再次出現的中心屏幕從右側而不是從x = 0向左移動到x = -_sidepanelview寬度從屏幕消失。
我在做什麼錯了?
注:我做了自動佈局取消選中的應用程序和動畫工作正常,但使用它與自動佈局打開它嚇壞了!
你能告訴我如何使用SETFRAME矛盾決定哪些約束在故事板? – Falcoa
我的意思是,'setFrame'本質上與AutoLayout相矛盾,因爲幀更新不會更新約束。如果你使用AutoLayout,不要使用'setFrame' - 總是隻更新約束。 我用一些示例代碼更新了我的答案。 –
在我的情況下,我只是使用約束來將容器中的X和Y中的_sidepanelview居中。我應該如何更新約束?我看到你用例如leadingSpace約束。 – Falcoa