0
我有兩個視圖 - 控制A和B.一個支持人像和風景,B只支持portrait.The下面的代碼是在A.使用CATransition自定義視圖 - 控制過渡動畫
UIStoryboard *board = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
B *vcb = [board instantiateViewControllerWithIdentifier:@"B"];
CATransition *a=[CATransition animation];
a.duration = 0.4f;
a.type = kCATransitionMoveIn;
a.subtype = kCATransitionFromTop;
a.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[self.view.window.layer addAnimation:a forKey:@"kTransitionAnimation"];
[self presentViewController:vcb animated:NO completion:nil];
而就B,我做的dissmiss。
CATransition *a=[CATransition animation];
a.duration = 0.4f;
a.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
a.type = kCATransitionReveal;
a.subtype = kCATransitionFromBottom;
[self.view.window.layer addAnimation:a forKey:@"dismiss"];
[self dismissViewControllerAnimated:NO completion:nil];
它可以在縱向模式下正常工作。但是,當我做下列步驟時,它會出錯: 1.在肖像模式下呈現B 2.將手機旋轉至風景,然後單擊以消除B. 3.動畫錯誤。 任何人都可以解釋這一點,以及如何解決它。我希望B的行爲與肖像模式相同。
爲什麼您要在當前模型中添加動畫,您只是在執行kCATransitionFromTop和kCATransitionFromBottom,這是默認情況下的動畫。 –
這只是一個演示。所以這個動畫的方向可能是kCATransitionFromLeft或kCATransitionFromRight。關鍵是爲什麼動畫不對,我把手機變成風景。謝謝! – user6299706