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

iOS swift實(shí)現(xiàn)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)的方法示例

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

轉(zhuǎn)場(chǎng)動(dòng)畫(huà)介紹

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

效果圖:


專場(chǎng)前


專場(chǎng)后

示例代碼

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

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

下面是animator類中的代碼

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

 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出來(lái)的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//動(dòng)畫(huà)時(shí)長(zhǎng)
 }
 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)//留一點(diǎn)值,這樣會(huì)有動(dòng)畫(huà)效果
  }) { (_) in
   transitonContext.completeTransition(true)
  }

 }


}

總結(jié)

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

相關(guān)文章

  • IOS 指紋識(shí)別詳解及實(shí)例代碼

    IOS 指紋識(shí)別詳解及實(shí)例代碼

    這篇文章主要介紹了IOS 指紋識(shí)別詳解的相關(guān)資料,并附實(shí)例代碼,需要的朋友可以參考下
    2016-11-11
  • iOS 實(shí)現(xiàn)跑馬燈效果的方法示例

    iOS 實(shí)現(xiàn)跑馬燈效果的方法示例

    可能說(shuō)起跑馬燈,大家第一個(gè)會(huì)想到的就是山寨機(jī)。但接下來(lái)這篇文章介紹的跑馬燈和那個(gè)跑馬燈是不一樣滴。在iOS中,跑馬燈是指label上的字自動(dòng)滾動(dòng),形成類似跑馬燈似的條幅。下面通過(guò)這篇文章我們來(lái)一起看看iOS 實(shí)現(xiàn)跑馬燈效果的方法,有需要的朋友們可以參考借鑒。
    2017-01-01
  • 詳解IOS的Automatically Sign在設(shè)備上打包

    詳解IOS的Automatically Sign在設(shè)備上打包

    本篇教程主要給大家分享了IOS的Automatically Sign如何在設(shè)備上直接打包,有需要的朋友參考學(xué)習(xí)下。
    2018-01-01
  • 談?wù)劄楹蝘OS開(kāi)發(fā)別用宏來(lái)定義常量

    談?wù)劄楹蝘OS開(kāi)發(fā)別用宏來(lái)定義常量

    最近在工程里看到很多不規(guī)范的使用,于是來(lái)寫(xiě)一篇博客來(lái)讓不是很清楚的小朋友們,使用正確的規(guī)范開(kāi)發(fā)ios,少埋點(diǎn)坑。
    2016-08-08
  • iOS 增加右側(cè)按鈕功能實(shí)例代碼

    iOS 增加右側(cè)按鈕功能實(shí)例代碼

    這篇文章主要介紹了iOS 增加右側(cè)按鈕功能實(shí)例代碼,需要的朋友可以參考下
    2017-07-07
  • iOS中Swift UISearchController仿微信搜索框

    iOS中Swift UISearchController仿微信搜索框

    這篇文章主要介紹了iOS中Swift UISearchController仿微信搜索框效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-05-05
  • iOS常用調(diào)試方法之靜態(tài)分析詳解

    iOS常用調(diào)試方法之靜態(tài)分析詳解

    這篇文章主要給大家介紹了關(guān)于iOS常用調(diào)試方法之靜態(tài)分析的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • iOS runtime動(dòng)態(tài)添加方法示例詳解

    iOS runtime動(dòng)態(tài)添加方法示例詳解

    Runtime是想要做好iOS開(kāi)發(fā),或者說(shuō)是真正的深刻的掌握OC這門(mén)語(yǔ)言所必需理解的東西。下面這篇文章主要給大家介紹了關(guān)于iOS runtime動(dòng)態(tài)添加方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2018-01-01
  • iOS 模塊化之JLRoute路由示例

    iOS 模塊化之JLRoute路由示例

    這篇文章主要介紹了iOS 模塊化之JLRoute路由示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • iOS開(kāi)發(fā)之事件傳遞響應(yīng)鏈

    iOS開(kāi)發(fā)之事件傳遞響應(yīng)鏈

    這篇文章主要為大家介紹了iOS開(kāi)發(fā)之事件傳遞響應(yīng)鏈,何為事件的響應(yīng)鏈,本文為大家揭曉,感興趣的小伙伴們可以參考一下
    2016-01-01

最新評(píng)論

钟祥市| 鄢陵县| 基隆市| 永顺县| 丘北县| 禹城市| 莆田市| 万源市| 烟台市| 古丈县| 池州市| 邵阳县| 泽库县| 贺兰县| 保定市| 都安| 凤凰县| 宣汉县| 临猗县| 青州市| 郸城县| 淅川县| 昌乐县| 嘉禾县| 永德县| 屏边| 永宁县| 留坝县| 永兴县| 稷山县| 铜山县| 井陉县| 剑川县| 广安市| 抚顺县| 云林县| 湘阴县| 神池县| 石门县| 靖州| 西乌|