亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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è)控制器。下面話(huà)不多說(shuō),來(lái)一起看看詳細(xì)的介紹:

效果圖:


專(zhuān)場(chǎng)前


專(zhuān)場(chǎng)后

示例代碼

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

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

下面是animator類(lèi)中的代碼

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的類(lèi),是為了設(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中Json解析實(shí)例方法詳解(四種方法)

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

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

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

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

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

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

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

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

    IOS 簽名錯(cuò)誤codesign failed with exit code 1解決方法

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

    iOS推送SDK集成詳細(xì)對(duì)比

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

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

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

    iOS異步下載圖片實(shí)例代碼

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

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

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

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

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

最新評(píng)論