巴扎黑2017-04-17 13:53:25
因為那隻是表現上的動畫,並沒有真的修改什麼東西,跟 UIView.animateXXX
那些東西不一樣。想要保留效果,要在 addAnimation
之外再去自己設置,像這樣:
rectLayer.addAnimation(alphaAnim, forKey: "alphaAnim")
rectLayer.opacity = 1
原本 rectLayer.opacity
是 0
, alphaAnim
的作用是把它漸變成 1
,這樣設定之後就會在動畫結束後保持為 1
。
有時候實在不好這樣做,也有下策:
alphaAnim.removedOnCompletion = false
alphaAnim.fillMode = kCAFillModeForwards
讓動畫在完成後也不移除,並且停留在動畫結束的狀態。但要記住做了動畫的元素本來的設定沒有因為動畫而產生任何變化,否則就各種呵呵了。 。 。