冬天已經(jīng)過去了,陽光越來越暖洋洋的了。還記得上學的時候,老師總說“春天是播種的季節(jié)”,而我還沒在朋友圈許下什么愿望。一年了,不敢想象回首還能看到點什么,所以勇往直前。當被俗世所擾,你是否也丟失了自己,忘卻了理想。
欲做精金美玉的人品,定從烈火中煅來;
思立掀天揭地的事功,須向薄冰上履過。
這篇博客中,我們主要來敘述一下上述動畫效果的實現(xiàn)方案。主要涉及 View Controller 轉(zhuǎn)場動畫的知識。
我搭建了個人站點,那里有更多內(nèi)容,請多多指教。點我哦?。?!
Presenting a View Controller
顯示一個 View Controller 主要有一下幾種方式:
使用 segues 自動顯示 View Controller;
使用 showViewController:sender: 和 showDetailViewController:sender: 方法顯示 View Controller;
調(diào)用 presentViewController:animated:completion: 方法依模態(tài)形式顯示 View Controller
通過上述方式,我們可以將一個 View Controller 顯示出來,而對于顯示地形式,我們可以使用 UIKit 中預定義的形式,也可以自定義(即自定義轉(zhuǎn)場動畫)。
Customizing the Transition Animations
自定義轉(zhuǎn)場動畫中,主要包含以下幾個組件:
Presenting View Controller(正在顯示的 View Controller)
Animator(動畫管理者)
Presented View Controller(要顯示的 View Controller)
Transitioning Delegate Object(轉(zhuǎn)場代理,用來提供 Animator 對象)
實現(xiàn)自定義轉(zhuǎn)場動畫,通常按照以下幾個步驟來完成
創(chuàng)建 Presented View Controller;
創(chuàng)建 Animator;
設(shè)置 Presented View Controller 的 transitioningDelegate 屬性,并實現(xiàn) UIViewControllerTransitioningDelegate 提供 Animator 對象;
在 Presenting View Controller 中調(diào)用 presentViewController:animated:completion: 顯示 Presented View Controller;
Presented View Controller
這里,我們將 Presented View Controller 本身作為其轉(zhuǎn)場代理,你也可以使用單獨的代理對象。
class PresentedViewController: UIViewController