什么是轉(zhuǎn)場(chǎng)
- 轉(zhuǎn)場(chǎng)的本質(zhì)是下一場(chǎng)景(子 VC)的視圖替換當(dāng)前的場(chǎng)景視圖(子 VC)以及相應(yīng)的控制器的切換舞蔽,表現(xiàn)為當(dāng)前視圖消失和下一視圖出現(xiàn)這一過(guò)程胳蛮。
常用的轉(zhuǎn)場(chǎng)
在 UINavigationController 中 push 和 pop
在 UITabBarController 中切換 Tab
Modal 轉(zhuǎn)場(chǎng):presentation 和 dismissal资柔,俗稱視圖控制器的模態(tài)顯示和消失蛮放,僅限于modalPresentationStyle屬性為 UIModalPresentationFullScreen 或 UIModalPresentationCustom 這兩種模式
UICollectionViewController 的布局轉(zhuǎn)場(chǎng):UICollectionViewController 與 UINavigationController 結(jié)合的轉(zhuǎn)場(chǎng)方式绘证,實(shí)現(xiàn)很簡(jiǎn)單隧膏。
轉(zhuǎn)場(chǎng)代理
[UINavigationControllerDelegate] //UINavigationController 的 delegate 屬性遵守該協(xié)議(因識(shí)別問題,這里用方括號(hào)替換尖括號(hào))
[UITabBarControllerDelegate] //UITabBarController 的 delegate 屬性該協(xié)議
[UIViewControllerTransitioningDelegate] //UIViewController 的 transitioningDelegate 屬性遵守該協(xié)議
轉(zhuǎn)場(chǎng)發(fā)生時(shí)嚷那,UIKit 將要求轉(zhuǎn)場(chǎng)代理將提供轉(zhuǎn)場(chǎng)動(dòng)畫的核心構(gòu)件:動(dòng)畫控制(遵守<UIViewControllerAnimatedTransitioning>協(xié)議)胞枕。提供也就是返回給代理對(duì)象。
什么是轉(zhuǎn)場(chǎng)動(dòng)畫(動(dòng)畫控制)
- 基于上訴轉(zhuǎn)場(chǎng)過(guò)程實(shí)現(xiàn)的的動(dòng)畫魏宽。
轉(zhuǎn)場(chǎng)動(dòng)畫主要實(shí)現(xiàn)思路
設(shè)置轉(zhuǎn)場(chǎng)代理腐泻,
實(shí)現(xiàn)代理方法,代理方法返回轉(zhuǎn)場(chǎng)動(dòng)畫
队询。轉(zhuǎn)場(chǎng)動(dòng)畫對(duì)象遵循轉(zhuǎn)場(chǎng)動(dòng)畫協(xié)議派桩,轉(zhuǎn)場(chǎng)動(dòng)畫對(duì)象實(shí)現(xiàn)代理方法兩個(gè),一個(gè)是 (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext;
另外一個(gè)是- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext;