現在,當我從導航控制器堆棧彈出自定義視圖控制器(帶有動畫:YES)時,它通常會向右滑動。我想讓動畫看起來與您推動控制器時相同(從右側滑入),但仍具有流行而非推動的效果。我應該如何開始我的追求?這應該在viewWillAppear中完成嗎?從導航堆棧彈出視圖控制器時從右側滑入
1
A
回答
1
我曾經做過一個視圖的自定義動畫,與此類似。至於入門,我會考慮the core animation framework。在Apple文檔中,比您想要的更匹配的可能是UIView animations。
基本上,您將viewDidLoad
中的幀設置爲離屏。然後在viewDidAppear
,你設置的框架是結束幀,但在這個代碼把它包:
[UIView beginAnimations:@"animationsNameThisCanBeAnythingOrNil" context:nil]
//Reset the frame here
[UIView commitAnimations];
我希望這有助於!
0
萬一它可以幫助別人,這是我用來實現什麼要求代碼:
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];
[[self.navigationController.view layer] addAnimation:animation forKey:nil];
[self.navigationController popViewControllerAnimated:NO];
您可能希望確保您大跌眼鏡從底層的UIView有一個清晰的背景,否則當你彈出你會看到舊的UIView褪色爲白色,因爲它滑落。
相關問題
- 1. 嘗試從導航堆棧彈出視圖時聲明失敗
- 2. 不使用導航控制器時彈出視圖控制器?
- 3. 彈出視圖控制器關閉堆棧沒有導航欄顯示?
- 4. 如何從導航控制器中的視圖控制器堆棧中獲取特定的視圖控制器?
- 5. 視圖控制器如何知道它何時被解散或彈出導航控制器堆棧?
- 6. NSOperationQueue避免將視圖控制器推入導航控制器堆棧?
- 7. 將多個視圖控制器推入導航控制器堆棧的問題
- 8. 如何從導航控制器彈出當前視圖?
- 9. 從導航控制器彈出多個視圖
- 10. 有沒有辦法找出視圖控制器是否從導航堆棧中彈出?
- 11. Xamarin.Forms棱鏡從導航堆棧刪除視圖堆棧
- 12. 如何從導航堆棧中的任意位置彈出到任意視圖控制器
- 13. 在segue期間從UINavigationController的導航堆棧中移除視圖控制器?
- 14. Swift/iOS。從導航堆棧中刪除幾個視圖控制器
- 15. 訪問導航堆棧中的當前視圖控制器
- 16. 重定向到導航堆棧中的新視圖控制器
- 17. 顯示已經在導航堆棧上的視圖控制器
- 18. 從導航欄視圖控制器導航到標籤欄視圖控制器
- 19. Iphone導航控制器刪除堆棧
- 20. 將視圖控制器推到ipad上的導航控制器堆棧前
- 21. 如何'彈出'到視圖控制器不在堆棧上
- 22. Objective C--完成塊和視圖控制器被彈出堆棧
- 23. 從導航控制器彈出viewcontroller時鍵盤不會退出
- 24. 彈出視圖控制器時更改導航欄顏色
- 25. 在哪裏設置導航堆棧中的視圖控制器導航項目
- 26. 將視圖控制器從一個視圖控制器移動到另一個視圖控制器而無需導航控制器堆棧
- 27. iPhone釋放模式視圖控制器也彈出推控制器到堆棧?
- 28. Android ListView - 從右側滑動子視圖?
- 29. jquery從右側滑出div
- 30. jPanelMenu - 從右側滑入