搜尋

首頁  >  問答  >  主體

ios - 为什么当 Core Animation 完成时,layer 又会恢复到原先的状态?

伊谢尔伦伊谢尔伦2886 天前737

全部回覆(1)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 13:53:25

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

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

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

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

    alphaAnim.removedOnCompletion = false
    alphaAnim.fillMode = kCAFillModeForwards
    

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

    回覆
    0
  • 取消回覆