亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > Swift > 正文

利用Swift實(shí)現(xiàn)各類(lèi)的CATransition動(dòng)畫(huà)詳解

2020-03-09 17:44:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

最近因?yàn)楣ぷ鞯男枰?,打算用swift/172288.html">swift/238953.html">swift重構(gòu)現(xiàn)有項(xiàng)目,實(shí)現(xiàn)過(guò)程中發(fā)現(xiàn)用到了很多系統(tǒng)的動(dòng)畫(huà)實(shí)現(xiàn),因?yàn)橹暗亩际怯肙C實(shí)現(xiàn)的,這里主要是把一些動(dòng)畫(huà)效果來(lái)通過(guò)swift實(shí)現(xiàn)一下。

這篇文章主要是實(shí)現(xiàn)一下CATransition動(dòng)畫(huà)的不同效果。

第一步 創(chuàng)建一個(gè)swift文件并聲明相應(yīng)的枚舉類(lèi)型

enum TransitionAnimType : Int {case fade = 0,    //淡入淡出push,      //推擠reveal,      //揭開(kāi)moveIn,      //覆蓋cube,      //立方體suckEffect,     //吮吸oglFlip,     //翻轉(zhuǎn)rippleEffect,    //波紋pageCurl,     //翻頁(yè)pageUnCurl,     //反翻頁(yè)cameraIrisHollowOpen,  //開(kāi)鏡頭cameraIrisHollowClose,  //關(guān)鏡頭curlDown,     //下翻頁(yè)curlUp,      //上翻頁(yè)flipFromLeft,    //左翻轉(zhuǎn)flipFromRight,    //右翻轉(zhuǎn)ramdom      //隨機(jī)}enum TransitionSubType : Int {case top = 0,    //上left,      //左bottom,      //下right,      //右ramdom      //隨機(jī)}enum TransitionCurve : Int {case Default = 0,   //默認(rèn)EaseIn,      //緩進(jìn)EaseOut,     //緩出EaseInEaseOut,    //緩進(jìn)緩出Linear,      //線性Ramdom      //隨機(jī)}

上面三個(gè)枚舉類(lèi)型分別代表:

  • TransitionAnimType:動(dòng)畫(huà)類(lèi)型
  • TransitionSubType:動(dòng)畫(huà)方向
  • TransitionCurve:動(dòng)畫(huà)曲線

第二步 自定義函數(shù)返回動(dòng)畫(huà)類(lèi)型

/// 返回動(dòng)畫(huà)類(lèi)型private func animationType(animType: TransitionAnimType) -> String { /// 設(shè)置轉(zhuǎn)場(chǎng)動(dòng)畫(huà)類(lèi)型 let animTypeArray = ["fade", "push", "reveal", "moveIn", "cube", "suckEffect", "oglFlip", "rippleEffect", "pageCurl", "pageUnCurl", "cameraIrisHollowOpen", "cameraIrisHollowClose", "curlDown", "curlUp", "flipFromLeft", "flipFromRight", "ramdom"] return objectFromDataSource(array: animTypeArray, index: animType.rawValue, isRamdom: (TransitionAnimType.ramdom == animType)) as! String}

第三步 自定義函數(shù)返回動(dòng)畫(huà)方向

/// 返回動(dòng)畫(huà)方向private func animationSubType(subType: TransitionSubType) -> String { let animSubTypeArray = [kCATransitionFromTop, kCATransitionFromLeft, kCATransitionFromBottom, kCATransitionFromRight] return objectFromDataSource(array: animSubTypeArray, index: subType.rawValue, isRamdom: (TransitionSubType.ramdom == subType)) as! String}

第四步 自定義函數(shù)返回動(dòng)畫(huà)曲線

/// 返回動(dòng)畫(huà)曲線private func animationCurve(curve: TransitionCurve) -> String { let animCurveArray = [kCAMediaTimingFunctionDefault, kCAMediaTimingFunctionEaseIn, kCAMediaTimingFunctionEaseOut, kCAMediaTimingFunctionEaseInEaseOut, kCAMediaTimingFunctionLinear] return objectFromDataSource(array: animCurveArray, index: curve.rawValue, isRamdom: (TransitionCurve.Ramdom == curve)) as! String}

第五步 不難發(fā)現(xiàn),上面三個(gè)自定義方法中我們都用到了objectFromDataSource這個(gè)方法,從我們的傳參不難發(fā)現(xiàn),它就是為了返回我們需要的指定數(shù)據(jù)的,下面我們來(lái)實(shí)現(xiàn)一下這個(gè)方法

/// 統(tǒng)一從數(shù)據(jù)返回對(duì)象private func objectFromDataSource(array: Array<Any>, index: Int, isRamdom: Bool) -> AnyObject { let count = array.count let i = isRamdom ? Int(arc4random_uniform(UInt32(count))) : index return array[i] as AnyObject}

第六步 好了,現(xiàn)在所有的準(zhǔn)備工作已經(jīng)做好,接下來(lái)我們來(lái)看一下具體的動(dòng)畫(huà)實(shí)現(xiàn)的方法

func layerTransition(animTye: TransitionAnimType, subType: TransitionSubType, curve: TransitionCurve, duration: CGFloat, layer: CALayer) {let key = "transition"if layer.animation(forKey: key) != nil { layer.removeAnimation(forKey: key)}let transition = CATransition()/// 動(dòng)畫(huà)時(shí)長(zhǎng)transition.duration = CFTimeInterval(duration)/// 動(dòng)畫(huà)類(lèi)型transition.type = animationType(animType: animTye)/// 動(dòng)畫(huà)方向transition.subtype = animationSubType(subType: subType)/// 緩動(dòng)函數(shù)transition.timingFunction = CAMediaTimingFunction(name: animationCurve(curve: curve))/// 完成動(dòng)畫(huà)刪除transition.isRemovedOnCompletion = truelayer.add(transition, forKey: key)}

大功告成!接下來(lái)我們?nèi)バ枰褂脛?dòng)畫(huà)的地方來(lái)調(diào)取我們第六步實(shí)現(xiàn)的方法就好了。so easy !哈哈

layerTransition(animTye: .ramdom, subType: .ramdom, curve: .Ramdom, duration: 2.0, layer: (self.view.window?.layer)!)

是不是感覺(jué)很簡(jiǎn)單呢,上面的代碼組合一下就可以直接用嘍,有需要的拿走不謝~~

總結(jié)

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


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到swift教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产视频亚洲色图| 国产97在线|亚洲| 日韩欧美中文视频| 欧美一区二区三区系列电影| 欧洲亚洲精品在线| 日韩激情第一页| 91麻豆精品国产91久久久久久久久| 色帝国亚洲欧美在线| 日日欢夜夜爽一区| 亚洲欧美精选| 色婷婷**av毛片一区| 波多野结衣手机在线视频| 高潮一区二区三区乱码| 99久久国产综合精品五月天喷水| 99在线观看| 国产黄a三级三级看三级| 亚洲精品视频播放| 中文字幕视频观看| 国产女主播在线观看| 欧美性aaa| 国产精品久久久久久亚洲av| 欧美aaaaa喷水| 国产在线视频欧美一区| 国产98在线|日韩| 青青草91久久久久久久久| 国产v亚洲v天堂无码| 欧洲日本不卡| 国产69精品久久久久777| 天天视频一区二区三区| 国产午夜免费视频| 清纯粉嫩极品夜夜嗨av| 日韩一区二区在线视频| 懂色av一区二区三区| 日韩av电影一区| 亚洲综合在线一区二区| 狠狠人妻久久久久久综合蜜桃| 手机av免费观看| 精品噜噜噜噜久久久久久久久试看| 免费高清特黄a大片| 成人性生交大片免费看视频在线| avlululu| 亚洲乱码国产乱码精品天美传媒| 亚洲色图视频在线观看| 九九视频免费观看| 欧美国产日韩亚洲一区| 乱馆动漫1~6集在线观看| 国产一级免费看| 欧美日韩综合精品| 国产一区二区三区奇米久涩| 国产高清不卡二三区| 成人精品福利视频| 欧美一级淫片免费视频| 噼里啪啦国语在线观看免费版高清版| 18深夜在线观看免费视频| 亚洲欧洲精品一区二区三区不卡| 国产伦精品一区二区三区四区视频_| 国产超级av在线| 四虎海外永久免费网址| 国产综合色区在线观看| 性久久久久久久| 精品一区免费| 欧美一级在线亚洲天堂| 一个人看的www视频在线免费观看| 最近免费看av| 日本久久一区二区三区| 精品久久久久久久久久久国产字幕| 精精国产xxxx视频在线野外| 黄色三及免费看| 88av.com| 麻豆精品少妇| 国产成人啪精品视频免费网| 亚洲国产网站| 精精国产xxxx视频在线播放| 992tv在线影院| 激情五月六月婷婷| 亚洲电影在线一区二区三区| 亚洲精品国产精品国自产网站| 欧美网站免费| 91蜜桃在线观看| 97久久香蕉国产线看观看| 91丨九色丨国产| 欧美精品video| 亚洲国产另类av| 天天插天天狠天天透| 欧美无砖专区一中文字| 麻豆成人久久精品二区三区红| 欧洲精品久久久| 久久久久久一区二区| 久久精品人人做人人综合| 美国十次综合久久| 狠久久av成人天堂| 成人羞羞网站入口免费| 国产高清在线观看免费不卡| 欧美aaa视频| 欧美黄色影院| 亚洲成人在线视频播放| 日韩国产综合| 亚洲视频在线观看视频| 久久久久久成人精品| 任你操这里只有精品| 久久久久女教师免费一区| 国产白嫩美女无套久久| 中文字幕成人免费视频| 99精彩视频在线观看免费| 亚洲在线网站| 久久综合影音| 欧美一区二区三区性视频| 少妇光屁股影院| 国产精品一区电影| yellow字幕网在线| 啦啦啦啦免费高清视频在线观看1| 日本中文字幕影院| 欧美成人三级电影在线| 写真福利理论片在线播放| 欧美精品在线一区二区| 亚洲小少妇裸体bbw| 视频一区在线免费观看| 欧美激情福利视频在线观看免费| 日本a一级在线免费播放| 最近免费中文字幕大全免费第三页| 久久精品国产精品亚洲色婷婷| 色中文字幕在线观看| 亚洲最大最好的私人影剧院| 亚洲ab电影| 国产精品2018| 黄色片在线观看网站| 免费在线观看一级片| 日韩电影天堂视频一区二区| 最新国产黄色网址| 亚洲欧美偷拍自拍| 日韩专区视频| 国产一区二区福利| 天天综合色天天| 97人妻一区二区精品免费视频| 国产欧美一区二区三区沐欲| 欧美精品色图| 国产三区在线播放| 在线观看 中文字幕| 亚洲精品狠狠操| 国产在线视频欧美一区| 亚洲欧洲av色图| 久久久久免费av| www在线观看播放免费视频日本| 在线观看视频h| 91精品国产乱码久久蜜臀| 日韩美女视频一区二区| 精品亚洲成av人在线观看| 国产在线制服美女| 热re99久久精品国99热蜜月| 亚洲黄色成人网| 日韩精品视频一区二区三区| av在线播放天堂| 国产成人精品久久| 国产又大又黄又粗又爽| 国产精品69久久久| 麻豆传媒在线视频| 国产大尺度视频| 337p日本欧洲亚洲大胆张筱雨| 国产亚洲永久域名| 亚洲国产综合网| 欧美伦理影视网| 免费网站在线观看视频| 一本一本久久a久久综合精品蜜桃| 国产中文一区二区| 天堂视频在线免费观看| 日本三级小视频| 5g影院5g电影天天爽快| 在线中文字幕不卡| 国产精品美女网站| 欧美一区二区视频观看视频| 亚洲第一欧美| 精品视频在线一区| 男人用嘴添女人下身免费视频| 亚洲欧美另类人妖| 欧美成人精品一区二区三区| 最近免费中文字幕大全免费版视频| 亚洲第一精品网站| 自拍偷拍亚洲一区| 日韩高清中文字幕| 亚洲综合在线做性| 国产盗摄一区二区三区| 国产精品乱子乱xxxx| 亚洲欧美综合自拍| 免费h片在线| 小泽玛利亚一区二区免费| 裸体免费网站| 国产在线观看欧美| 一区二区三区不卡在线| 国产黄色激情视频| www.麻豆av.com| 欧美成人精品一区| 日韩一区网站| 成年人观看网站| 激情自拍一区| 日韩中文字幕av| 久蕉在线视频| 在线免费看毛片| 亚洲最大av在线| 91精品久久香蕉国产线看观看| 欧洲亚洲精品视频| 日本一二三区在线视频| 三级福利视频| 99在线精品免费视频| 欧美精品久久天天躁| 性色88av老女人视频| 日韩有码av| 国产专区视频| 日韩有码欧美| 亚洲天堂av一区二区| 97视频免费看| 中文字幕人成乱码在线观看| 91.com在线| 国语精品中文字幕| 成年网址网站在线观看| 精品久久久久av影院| 少妇淫片在线影院| 屁屁影院国产第一页| 国产精品中文字幕在线观看| av在线亚洲天堂| 中文字幕亚洲天堂| 中文字幕亚洲无线码在线一区| 999国产精品亚洲77777| 无码任你躁久久久久久老妇| 欧美疯狂party性派对| 一区二区视频免费完整版观看| 色狠狠一区二区三区香蕉| 国产精品女主播一区二区三区| 玖玖玖免费嫩草在线影院一区| 亚洲精品久久久成人| 日韩毛片免费看| 亚洲女人18毛片水真多| 8x8x成人免费视频| 亚洲黄色激情视频| 精品亚洲精品| 久久久综合网站| 欧美在线观看一二区| 26uuu成人网一区二区三区| 五月天婷婷视频| 黄色一级在线视频| 国产91高潮流白浆在线麻豆| 少妇视频在线| 人妻互换一区二区激情偷拍| a毛片在线看免费观看| 伊人婷婷欧美激情| 欧美xxxx综合视频| 欧美激情 国产精品| 国产精品suv一区二区| 久久久久久久久久影视| 中文字幕在线永久在线视频2020| 最新国产在线观看| 日韩欧美国产综合在线| 亚洲一卡二卡在线观看| 成人免费淫片视频软件| 99久久99久久免费精品小说| 高清av一区二区| 91亚色免费| 8x8ⅹ拨牐拨牐拨牐在线观看| 国产女人在线观看| 久久9热精品视频| av在线视屏| 天天综合狠狠精品| 国产视频一区在线播放| 国产18无套直看片| 蜜桃91精品入口| 国产精品入口免费视频一| 亚洲一区二区三区四区的| 欧美在线影院一区二区| 全部孕妇毛片丰满孕妇孕| 国产主播第一页| 97婷婷大伊香蕉精品视频| 最近最新mv在线观看免费高清| 91制片厂免费观看| 91麻豆蜜桃一区二区三区| 超级碰在线观看| 成人免费观看视频大全| 波多野结衣在线观看一区二区| 黄色的毛片免费| 不卡av在线网| 国产一区白浆| 成人激情电影在线| 亚洲国产成人精品电影| 天天操天天舔天天射| 欧美亚洲成人网| 色婷婷综合成人| 人妻体体内射精一区二区| 亚洲aaa视频| 国产黑人绿帽在线第一区| 欧美va在线播放| 亚洲激情视频在线播放| 亚洲男人天堂古典| 一区二区乱子伦在线播放| 久久午夜剧场| 亚洲综合免费观看高清完整版在线| 少妇高潮一区二区三区| 亚洲欧美激情另类| 精品高清美女精品国产区| 中文字幕一区二区三区四区免费看| 国产伦精品一区二区三区妓女| 99精品一区二区| 免费网站www在线观看| 一区二区三区视频免费视频观看网站| 日本成人在线电影网| 男人天堂欧美日韩| 欧洲日本不卡| 免费观看日韩av| 一区二区三区在线免费观看| 中文字幕4区| 国产精品无码专区在线观看| 九热爱视频精品视频| 91国内精品野花午夜精品| 久久性天堂网| 日韩欧美一级片| 日韩午夜av| 日日干夜夜操| 四虎精品一区二区永久在线观看| 精品国产欧美一区二区五十路| 欧美日韩亚洲高清一区二区| 亚洲成年网站在线观看| 久久香蕉网站| 欧美日韩大片免费观看| 一区二区三区四区视频免费观看| 一区二区视频免费看| 国产l精品国产亚洲区久久| 宅男深夜视频| 91社区在线观看播放| 精品国产一区二区三区不卡| 18以下岁禁止1000部免费| 欧美深夜福利视频|