你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> ios8中 利用UIPresentationController 自定義轉場

ios8中 利用UIPresentationController 自定義轉場

編輯:IOS開發綜合

1、UIPresentationController 介紹

UIPresentationController 是 iOS8 新增的一個 API,用來控制 controller 之間的跳轉特效。比如希望實現一個特效,顯示一個窗口,大小和位置都是自定義的,並且遮罩在原來的頁面上。在之前,可以操作view的一些方法來實現。

2、使用介紹

1. 設置目標控制器的 轉場代理 和 展示方法

controller.modalPresentationStyle = UIModalPresentationStyle.Custom	// 設置 動畫樣式
controller.transitioningDelegate = transtinoDelegate	// 此對象要實現 UIViewControllerTransitioningDelegate 協議

2. transtionDelegate 實現 UIViewControllerTransitioningDelegate 協議方法

// 返回控制控制器彈出動畫的對象
optional func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning?
	
// 返回控制控制器消失動畫的對象
optional func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning?
	
@availability(iOS, introduced=8.0)
// 返回控制控制器跳轉的對象
optional func presentationControllerForPresentedViewController(presented: UIViewController, presentingViewController presenting: UIViewController!, sourceViewController source: UIViewController) -> UIPresentationController?

3. 控制控制器跳轉的類

控制控制器跳轉的類繼承自 UIPresentationController

/*
	構造方法:
	參數:	presentedViewController		將要跳轉到的目標控制器
		presentingViewController	跳轉前的原控制器
*/
init(presentedViewController: UIViewController!, presentingViewController: UIViewController!)

常用的屬性和方法
presentedViewController:				要 modal 顯示的視圖控制器
presentingViewController:				低層的視圖控制器
containerView()						容器視圖
presentedView()						被展現的視圖
func presentationTransitionWillBegin()			跳轉將要開始
func presentationTransitionDidEnd(completed: Bool)	跳轉完成
func dismissalTransitionWillBegin()			dismiss 將要開始
func dismissalTransitionDidEnd(completed: Bool)		dismiss 完成
func frameOfPresentedViewInContainerView()		目標 控制器設置

4. 控制動畫類

控制動畫對類繼承自 UIViewControllerAnimatedTransitioning

// 執行動畫的時間
func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval
// 動畫過程設置
func animateTransition(transitionContext: UIViewControllerContextTransitioning)

5. 總結

1. 設置目標控制器的轉場代理

2. 專場代理返回三個對象用於控制轉場過程

3. 控制控制器轉場對象,可以在此做專場前後的操作,例如添加遮罩等

4. 控制轉場動畫,用於設置目標控制器出現或消失的動畫,以及控制器的大小樣式等。

3. API 詳細介紹

稍後。。。

4.自定義跳轉 Demo

稍後。。。


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved