現在,當我從導航控制器堆棧彈出自定義視圖控制器(帶有動畫: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. 做視圖控制器彈出導航堆棧Dealloc?
- 3. 如何從堆棧中彈出視圖控制器而不導航到它們
- 4. 嘗試從導航堆棧彈出視圖時聲明失敗
- 5. iOS:從導航堆棧中移除視圖控制器
- 6. 推動從右側的視圖控制器,動態導航控制器
- 7. 使用ARC從導航控制器彈出時保留視圖控制器
- 8. 不使用導航控制器時彈出視圖控制器?
- 9. 彈出視圖控制器關閉堆棧沒有導航欄顯示?
- 10. 如何從導航控制器中的視圖控制器堆棧中獲取特定的視圖控制器?
- 11. 視圖控制器如何知道它何時被解散或彈出導航控制器堆棧?
- 12. 將多個視圖控制器推入導航控制器堆棧的問題
- 13. NSOperationQueue避免將視圖控制器推入導航控制器堆棧?
- 14. 從導航控制器彈出多個視圖
- 15. 如何從導航控制器彈出當前視圖?
- 16. 將視圖控制器放到導航堆棧中導致SIGABRT
- 17. 有沒有辦法找出視圖控制器是否從導航堆棧中彈出?
- 18. 適當的時刻從導航堆棧中刪除控制器
- 19. 爲什麼從導航堆棧彈出視圖時鍵盤不顯示?
- 20. 從導航控制器導航到正常視圖控制器
- 21. 從導航堆棧
- 22. 從容器視圖內的視圖將視圖推入導航堆棧?
- 23. 視圖控制器堆棧
- 24. 如何隱藏視圖控制器的右側導航項目從UIView類
- 25. Xamarin.Forms棱鏡從導航堆棧刪除視圖堆棧
- 26. 如何從導航堆棧中的任意位置彈出到任意視圖控制器
- 27. 以正確的方式從導航堆棧中刪除視圖控制器
- 28. 在segue期間從UINavigationController的導航堆棧中移除視圖控制器?
- 29. Swift/iOS。從導航堆棧中刪除幾個視圖控制器
- 30. 重定向到導航堆棧中的新視圖控制器