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

IOS CoreAnimation中l(wèi)ayer動(dòng)畫閃爍的解決方法

 更新時(shí)間:2016年06月01日 11:40:19   作者:大熊貓侯佩  
這篇文章主要為大家詳細(xì)介紹了IOS CoreAnimation中l(wèi)ayer動(dòng)畫閃爍的原因,分享了layer動(dòng)畫閃爍的解決方法,感興趣的小伙伴們可以參考一下

網(wǎng)上有一段Core Animation層動(dòng)畫的例子,是將view中的云朵從左向右移動(dòng),直到移出屏幕,這時(shí)再將云朵移到最左端然后重復(fù)移動(dòng)動(dòng)畫.

所有動(dòng)畫在layer上完成,不過有個(gè)小問題,就是第一次每朵云動(dòng)畫完成時(shí),會(huì)在其原位置處有一個(gè)閃爍,然后才會(huì)移動(dòng)到屏幕最右端,而隨后的運(yùn)動(dòng)動(dòng)畫都沒有這個(gè)問題了:

由于錄制gif文件時(shí)使用的幀率比較低,所以上圖較難展示這個(gè)問題.不過實(shí)際App運(yùn)行的時(shí)候每朵云在第一次移出屏幕的時(shí)候都會(huì)在初始位置閃爍一下再運(yùn)行隨后的動(dòng)畫.這是為什么呢?

因?yàn)閘ayer動(dòng)畫不同于view層面上的動(dòng)畫,它實(shí)際不會(huì)修改原始view的任何屬性.就拿云朵移動(dòng)的動(dòng)畫來說,你雖然看上去改變了云朵的x坐標(biāo)使其向右移動(dòng),可實(shí)際上原來的云朵ImageView根本還在原地,只不過CA用其外觀創(chuàng)建了一個(gè)臨時(shí)繪制進(jìn)行移動(dòng),原來的云朵被暫時(shí)隱藏起來;一旦移動(dòng)動(dòng)畫完成,該臨時(shí)對(duì)象被刪除,原來的云朵會(huì)在初始位置出現(xiàn).

那么為什么只有動(dòng)畫第一次會(huì)出現(xiàn)閃爍呢?因?yàn)樵诘谝淮蝿?dòng)畫結(jié)束后,我在代碼中修改了云朵view的x坐標(biāo),所以后面云朵的x坐標(biāo)都和layer動(dòng)畫的fromValue相同,這將保證后續(xù)動(dòng)畫不會(huì)發(fā)生”閃爍”。

知道了原因,解決就很簡單了,我只要在第一次動(dòng)畫前將云朵的x坐標(biāo)修改為指定的位置,同時(shí)調(diào)整fromValue的值為初始位置即可:

func animateCloud(layer:CALayer){
 let cloudSpeed = 15.0/Double(view.layer.frame.size.width)
 let duration:NSTimeInterval = Double(view.layer.frame.size.width - layer.frame.origin.x) * cloudSpeed
 //提前存儲(chǔ)云朵layer的初始位置 
 let fromValue = layer.position
 //設(shè)置云朵的最終位置
 layer.position.x = -layer.bounds.width/2

 let cloudMove = CABasicAnimation(keyPath: "position.x")
 cloudMove.fillMode = kCAFillModeForwards
 //cloudMove.removedOnCompletion = false
 cloudMove.duration = duration
 //設(shè)置云朵的初始位置
 cloudMove.fromValue = fromValue.x
 cloudMove.toValue = self.view.bounds.size.width + layer.bounds.width/2
 cloudMove.delegate = self
 cloudMove.setValue("cloud", forKey: "name")
 cloudMove.setValue(layer, forKey: "layer")
 layer.addAnimation(cloudMove, forKey: nil)
 }

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • IOS CocoaPods詳細(xì)使用方法

    IOS CocoaPods詳細(xì)使用方法

    自從有了CocoaPods以后,這些繁雜的工作就不再需要我們親力親為了,只需要我們做好少量的配置工作,CocoaPods會(huì)為我們做好一切
    2016-09-09
  • iOS實(shí)現(xiàn)動(dòng)態(tài)元素的引導(dǎo)圖效果

    iOS實(shí)現(xiàn)動(dòng)態(tài)元素的引導(dǎo)圖效果

    這篇文章給大家介紹了iOS實(shí)現(xiàn)動(dòng)態(tài)元素的引導(dǎo)圖效果的步驟,文章給出了示例代碼介紹的很詳細(xì),有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-09-09
  • iOS倒計(jì)時(shí)的實(shí)現(xiàn)方法

    iOS倒計(jì)時(shí)的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了iOS倒計(jì)時(shí)的實(shí)現(xiàn)方法,點(diǎn)擊進(jìn)行倒計(jì)時(shí)準(zhǔn)備,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • iOS Crash文件分析方法匯總

    iOS Crash文件分析方法匯總

    今天跟大家一起聊聊iOSCrash文件的幾種分析方法,都是平時(shí)比較常用的,有需要的小伙伴可以參考下
    2017-11-11
  • iOS中你需要的彈窗效果總結(jié)大全

    iOS中你需要的彈窗效果總結(jié)大全

    彈窗是app中常見控件之一,一般由于項(xiàng)目需求,我們很少能直接使用系統(tǒng)提供的彈窗,這個(gè)時(shí)候就需要我們根據(jù)產(chǎn)品需求封裝自定義彈窗了。下面這篇文章主要給大家介紹了關(guān)于iOS中你需要的彈窗效果的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • IOS面試大全之常見算法

    IOS面試大全之常見算法

    之前看了很多面試題,感覺要不是不夠就是過于冗余,于是我將網(wǎng)上的一些面試題進(jìn)行了刪減和分類,這篇文章先給大家分享一下IOS中的常見算法,有需要的可以參考借鑒。
    2016-09-09
  • iOS UIAlertController中UITextField添加晃動(dòng)效果與邊框顏色詳解

    iOS UIAlertController中UITextField添加晃動(dòng)效果與邊框顏色詳解

    這篇文章主要給大家介紹了關(guān)于iOS UIAlertController中UITextField添加晃動(dòng)效果與邊框顏色的相關(guān)資料,實(shí)現(xiàn)后的效果非常適合在開發(fā)中使用,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面隨著小編來一起看看吧。
    2017-10-10
  • iOS遠(yuǎn)程推送Push開發(fā)教程

    iOS遠(yuǎn)程推送Push開發(fā)教程

    這篇文章主要為大家詳細(xì)介紹了iOS遠(yuǎn)程推送Push開發(fā)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • IOS簡單實(shí)現(xiàn)瀑布流UICollectionView

    IOS簡單實(shí)現(xiàn)瀑布流UICollectionView

    這篇文章主要為大家介紹了IOS簡單實(shí)現(xiàn)瀑布流UICollectionView的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • iOS App之間的通信 local socket

    iOS App之間的通信 local socket

    這篇文章主要介紹了iOS App之間的通信 local socket的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評(píng)論

泽州县| 藁城市| 尚志市| 仙桃市| 明星| 玉山县| 商河县| 抚顺市| 故城县| 佛学| 景谷| 玉树县| 来宾市| 黎平县| 芦山县| 祁东县| 泰兴市| 东城区| 应城市| 胶南市| 本溪| 西峡县| 包头市| 什邡市| 舞阳县| 佛教| 楚雄市| 兖州市| 搜索| 正阳县| 海原县| 合肥市| 台江县| 方山县| 兖州市| 名山县| 关岭| 仙游县| 施甸县| 青浦区| 项城市|