ios轉場

weixin_33807284發表於2017-12-01

什麼是轉場

  • 轉場的本質是下一場景(子 VC)的檢視替換當前的場景檢視(子 VC)以及相應的控制器的切換,表現為當前檢視消失和下一檢視出現這一過程。

常用的轉場

  • 在 UINavigationController 中 push 和 pop

  • 在 UITabBarController 中切換 Tab

  • Modal 轉場:presentation 和 dismissal,俗稱檢視控制器的模態顯示和消失,僅限於modalPresentationStyle屬性為 UIModalPresentationFullScreen 或 UIModalPresentationCustom 這兩種模式
    UICollectionViewController 的佈局轉場:UICollectionViewController 與 UINavigationController 結合的轉場方式,實現很簡單。

轉場代理

[UINavigationControllerDelegate] //UINavigationController 的 delegate 屬性遵守該協議(因識別問題,這裡用方括號替換尖括號)
[UITabBarControllerDelegate] //UITabBarController 的 delegate 屬性該協議
[UIViewControllerTransitioningDelegate] //UIViewController 的 transitioningDelegate 屬性遵守該協議

轉場發生時,UIKit 將要求轉場代理將提供轉場動畫的核心構件:動畫控制(遵守<UIViewControllerAnimatedTransitioning>協議)。提供也就是返回給代理物件。

什麼是轉場動畫(動畫控制)

  • 基於上訴轉場過程實現的的動畫。

轉場動畫主要實現思路

  • 設定轉場代理,

  • 實現代理方法,代理方法返回轉場動畫

  • 。轉場動畫物件遵循轉場動畫協議,轉場動畫物件實現代理方法兩個,一個是 (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext;

  • 另外一個是- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext;

參考

相關文章