最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS 控制器自定義動(dòng)畫跳轉(zhuǎn)方法(模態(tài)跳轉(zhuǎn))

 更新時(shí)間:2018年01月09日 10:31:54   作者:iMazy  
下面小編就為大家分享一篇iOS 控制器自定義動(dòng)畫跳轉(zhuǎn)方法(模態(tài)跳轉(zhuǎn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

參考資料:

Apple 開發(fā)文檔 Customizing the Transition Animations

WWDC 2013 Custom Transitions Using View Controllers

圖例:

跳轉(zhuǎn)的動(dòng)畫有很多,全部可以自定義

創(chuàng)建自定義跳轉(zhuǎn)必須遵循的三個(gè)步驟:

1、創(chuàng)建一個(gè)類,并實(shí)現(xiàn)了 UIViewControllerAnimatedTransitioning 協(xié)議

2、創(chuàng)建一個(gè)類作為 UIViewControllerTransitioningDelegate 過渡代理

3、在模態(tài)跳轉(zhuǎn)前修改控制器的 transitioningDelegate 代理為自定義的代理(步驟2的代理類)

核心代碼示例

一、創(chuàng)建一個(gè)類,并實(shí)現(xiàn)了 UIViewControllerAnimatedTransitioning 協(xié)議

這個(gè)協(xié)議主要控制控制器視圖的顯示的,通過 transitionContext 可以獲取到每個(gè)視圖和控制器,并進(jìn)行動(dòng)畫的設(shè)置

class AnimatedTransitioning: NSObject {
 var isPresenting: Bool = false
}
extension AnimatedTransitioning: UIViewControllerAnimatedTransitioning {
 func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
 return 0.5
 }
 func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
 let fromView = transitionContext.view(forKey: .from)!
 let toView = transitionContext.view(forKey: .to)!
 let containerView = transitionContext.containerView
 if isPresenting {
  toView.transform = CGAffineTransform(scaleX: 0, y: 0)
  containerView.addSubview(toView)
 } else {
  containerView.insertSubview(toView, belowSubview: fromView)
 }
 UIView.animate(withDuration: 0.5, animations: {
  if self.isPresenting {
  toView.transform = CGAffineTransform.identity
  } else {
  fromView.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
  }
 }) { (finished) in
  transitionContext.completeTransition(finished)
 }
 }
}

二、創(chuàng)建一個(gè)類作為 UIViewControllerTransitioningDelegate 過渡代理

這里設(shè)置 presented 和 dismissed 時(shí)各自的動(dòng)畫轉(zhuǎn)換類,可以設(shè)置為不同的類

class CustomTransitioningDelegate: NSObject, UIViewControllerTransitioningDelegate {
 func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
 let at = AnimatedTransitioning()
 at.isPresenting = true
 return at
 }
 func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
 let at = AnimatedTransitioning()
 at.isPresenting = false
 return at
 }
}

三、在模態(tài)跳轉(zhuǎn)前修改控制器的 transitioningDelegate 代理為自定義的代理

注意:代理不能為局部變量

class ViewController: UIViewController {
 // 必須保存為實(shí)例變量
 var ctDelegate = CustomTransitioningDelegate()
 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
 let vc = TempViewController()
 vc.transitioningDelegate = ctDelegate
 self.present(vc, animated: true, completion: nil)
 }
}

以上這篇iOS 控制器自定義動(dòng)畫跳轉(zhuǎn)方法(模態(tài)跳轉(zhuǎn))就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS組件化開發(fā)實(shí)戰(zhàn)記錄

    iOS組件化開發(fā)實(shí)戰(zhàn)記錄

    這篇文章主要給大家介紹了關(guān)于iOS組件化開發(fā)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • iOS監(jiān)控筆記之啟動(dòng)crash

    iOS監(jiān)控筆記之啟動(dòng)crash

    iOS崩潰是讓iOS開發(fā)人員比較頭痛的事情,app崩潰了,說明代碼寫的有問題,下面這篇文章主要給大家介紹了關(guān)于iOS監(jiān)控筆記之啟動(dòng)crash的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-05-05
  • 詳解優(yōu)化iOS程序性能的25個(gè)方法

    詳解優(yōu)化iOS程序性能的25個(gè)方法

    本篇文章主要介紹了優(yōu)化iOS程序性能的25個(gè)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • 詳解Xcode 9 設(shè)置 iOS無線真機(jī)調(diào)試

    詳解Xcode 9 設(shè)置 iOS無線真機(jī)調(diào)試

    本篇文章主要介紹了詳解Xcode 9 設(shè)置 iOS無線真機(jī)調(diào)試,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • iOS 獲取當(dāng)前的ViewController的方法

    iOS 獲取當(dāng)前的ViewController的方法

    本篇文章主要介紹了iOS 獲取當(dāng)前的ViewController的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • iOS給border設(shè)置漸變色的方法實(shí)例

    iOS給border設(shè)置漸變色的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于iOS給border設(shè)置漸變色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • iOS使用CoreMotion實(shí)現(xiàn)搖一搖功能

    iOS使用CoreMotion實(shí)現(xiàn)搖一搖功能

    這篇文章主要為大家詳細(xì)介紹了iOS使用CoreMotion實(shí)現(xiàn)搖一搖功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 詳解iOS開發(fā)獲取當(dāng)前控制器的正取方式

    詳解iOS開發(fā)獲取當(dāng)前控制器的正取方式

    這篇文章主要介紹了iOS開發(fā)獲取當(dāng)前控制器的正取方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • iOS簡(jiǎn)單登錄LoginViewController、注冊(cè)RegisterViewController等功能實(shí)現(xiàn)方法

    iOS簡(jiǎn)單登錄LoginViewController、注冊(cè)RegisterViewController等功能實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了iOS簡(jiǎn)單登錄LoginViewController、注冊(cè)RegisterViewController、UcenterViewController功能實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS UICollectionView實(shí)現(xiàn)橫向滑動(dòng)

    iOS UICollectionView實(shí)現(xiàn)橫向滑動(dòng)

    這篇文章主要為大家詳細(xì)介紹了iOS UICollectionView實(shí)現(xiàn)橫向滑動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03

最新評(píng)論

韶山市| 定州市| 大名县| 阳江市| 和静县| 章丘市| 平江县| 资兴市| 琼海市| 越西县| 西林县| 大新县| 开原市| 清原| 德令哈市| 无极县| 敦煌市| 麻栗坡县| 普格县| 友谊县| 佛坪县| 鄂州市| 安庆市| 玉田县| 桦南县| 凉山| 内江市| 理塘县| 同心县| 襄汾县| 高州市| 鄂托克旗| 牙克石市| 涡阳县| 松滋市| 特克斯县| 乐业县| 陆川县| 博白县| 永顺县| 江北区|