ios - 为什么当 Core Animation 完成时,layer 又会恢复到原先的状态?
伊谢尔伦
伊谢尔伦 2017-04-17 13:51:25
0
1
669
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(1)
巴扎黑

因為那隻是表現上的動畫,並沒有真的修改什麼東西,跟 UIView.animateXXX 那些東西不一樣。想要保留效果,要在 addAnimation 之外再去自己設置,像這樣:

rectLayer.addAnimation(alphaAnim, forKey: "alphaAnim")
rectLayer.opacity = 1

原本 rectLayer.opacity0alphaAnim 的作用是把它漸變成 1 ,這樣設定之後就會在動畫結束後保持為 1

有時候實在不好這樣做,也有下策:

alphaAnim.removedOnCompletion = false
alphaAnim.fillMode = kCAFillModeForwards

讓動畫在完成後也不移除,並且停留在動畫結束的狀態。但要記住做了動畫的元素本來的設定沒有因為動畫而產生任何變化,否則就各種呵呵了。 。 。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板