欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS swift實現(xiàn)轉(zhuǎn)場動畫的方法示例

 更新時間:2017年07月14日 09:53:29   作者:awyys  
在平時的iOS開發(fā)中,我們進行界面跳轉(zhuǎn)時一般都是采用系統(tǒng)默認的轉(zhuǎn)場動畫,而下面這篇文章主要給大家介紹了關(guān)于iOS利用swift實現(xiàn)轉(zhuǎn)場動畫的方法示例,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。

轉(zhuǎn)場動畫介紹

轉(zhuǎn)場動畫在我們?nèi)粘i_發(fā)中是經(jīng)常遇到的,所謂轉(zhuǎn)場動畫,就是一個控制器的view切到另一個控制器的view上過程中過的動畫效果。本例子是實現(xiàn)了在導航控制器的titleView邊上慢慢彈出一個控制器。下面話不多說,來一起看看詳細的介紹:

效果圖:


專場前


專場后

示例代碼

首先自定義一個animator類。在需要轉(zhuǎn)場的控制器內(nèi),設(shè)置代理

 //需要設(shè)置轉(zhuǎn)場動畫的控制器titleViewVc.transitioningDelegate = aniamator//這里的animator是animator的實例

下面是animator類中的代碼

class animatorTool: NSObject {
 lazy var isPresent = false
 var callBack : ((isPresented:Bool)->())?//向外界傳遞動畫是否正在顯示

 init(callBack : ((isPresented:Bool)->())) {
  self.callBack = callBack
 }//自定義構(gòu)造方法,便于給閉包賦值
}
extension animatorTool:UIViewControllerTransitioningDelegate{
 func presentationControllerForPresentedViewController(presented: UIViewController, presentingViewController presenting: UIViewController, sourceViewController source: UIViewController) -> UIPresentationController? {
  return AWYPresentationController(presentedViewController: presented, presentingViewController: presenting)//AWYPresentationController是自定義繼承自UIPresentationController的類,是為了設(shè)置modal出來的vc的view的大小
 }
 func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
  isPresent = true
  self.callBack!(isPresented: isPresent)
  return self
 }

 func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
  isPresent = false
  self.callBack!(isPresented: isPresent)
  return self
 }
}

extension animatorTool:UIViewControllerAnimatedTransitioning{
 func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
  return 0.5//動畫時長
 }
 func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
  isPresent ?animatetransitionForPresented(transitionContext) : animatetransitionForDismissed(transitionContext)
 }

 func animatetransitionForPresented(transitonContext:UIViewControllerContextTransitioning){
  let aimView = transitonContext.viewForKey(UITransitionContextToViewKey)!
  transitonContext.containerView()?.addSubview(aimView)

  aimView.transform = CGAffineTransformMakeScale(1.0, 0.0)
  UIView.animateWithDuration(transitionDuration(transitonContext), animations: {
   aimView.layer.anchorPoint = CGPointMake(0.5, 0.0)
   aimView.transform = CGAffineTransformIdentity
  }) { (_) in
   transitonContext.completeTransition(true)
  }
 }

 func animatetransitionForDismissed(transitonContext:UIViewControllerContextTransitioning){
  let aimView = transitonContext.viewForKey(UITransitionContextFromViewKey)!
  transitonContext.containerView()?.addSubview(aimView)


  UIView.animateWithDuration(transitionDuration(transitonContext), animations: {
   aimView.layer.anchorPoint = CGPointMake(0.5, 0.0)
   aimView.transform = CGAffineTransformMakeScale(1.0, 0.001)//留一點值,這樣會有動畫效果
  }) { (_) in
   transitonContext.completeTransition(true)
  }

 }


}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • IOS中Json解析實例方法詳解(四種方法)

    IOS中Json解析實例方法詳解(四種方法)

    本文將介紹TouchJson、 SBJson 、JSONKit 和 iOS5所支持的原生的json方法,解析國家氣象局API。通過本文給大家介紹IOS中Json解析的四種方法,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-06-06
  • 詳解IOS判斷當前網(wǎng)絡(luò)狀態(tài)的三種方法

    詳解IOS判斷當前網(wǎng)絡(luò)狀態(tài)的三種方法

    這篇文章主要介紹了詳解IOS判斷當前網(wǎng)絡(luò)狀態(tài)的三種方法,網(wǎng)絡(luò)狀態(tài)是非常重要的知識,感興趣的同學,必須要看一下
    2021-04-04
  • iOS xib文件中添加ScrollView約束的方法

    iOS xib文件中添加ScrollView約束的方法

    下面小編就為大家分享一篇iOS xib文件中添加ScrollView約束的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • IOS 開發(fā)之Object-C中的對象詳解

    IOS 開發(fā)之Object-C中的對象詳解

    這篇文章主要介紹了IOS 開發(fā)之Object-C中的對象詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • IOS 簽名錯誤codesign failed with exit code 1解決方法

    IOS 簽名錯誤codesign failed with exit code 1解決方法

    這篇文章主要介紹了IOS 簽名錯誤codesign failed with exit code 1解決方法的相關(guān)資料,遇到同樣問題的朋友可以看下,這里提供了解決方案,需要的朋友可以參考下
    2017-01-01
  • iOS推送SDK集成詳細對比

    iOS推送SDK集成詳細對比

    本文通過SDK功能集成、大小價格等各個方便全面進行了幾個大平臺的對比,希望對你有用。
    2018-01-01
  • IOS10 隱私權(quán)限設(shè)置實例詳解

    IOS10 隱私權(quán)限設(shè)置實例詳解

    這篇文章主要介紹了IOS10 隱私權(quán)限設(shè)置實例詳解的相關(guān)資料,本文主要是介紹,在使用相機功能是遇到錯誤,這里說明該如何解決,需要的朋友可以參考下
    2016-12-12
  • iOS異步下載圖片實例代碼

    iOS異步下載圖片實例代碼

    這篇文章主要介紹了iOS異步下載圖片實例代碼的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • 詳解iOS App開發(fā)中改變UIButton內(nèi)部控件的基本方法

    詳解iOS App開發(fā)中改變UIButton內(nèi)部控件的基本方法

    這篇文章主要介紹了iOS App開發(fā)中改變UIButton內(nèi)部控件的基本方法,文章開頭也順帶總結(jié)了一些UIButton的基本用法,示例代碼為Objective-C,需要的朋友可以參考下
    2016-03-03
  • iOS中正向、逆向傳值的方法總結(jié)

    iOS中正向、逆向傳值的方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于iOS中正向、逆向傳值的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08

最新評論