[英]Animating CAShapeLayer: Do On Completion
我有一個CAShapeLayer
,它的strokeEnd
有時會在NSTimer
循環內更新。 當我打電話時效果很好:
myPathLayer.strokeEnd += 0.1
此路徑更改會根據需要自動設置動畫。 我的問題是,因為這不是函數調用,所以沒有完成塊。 此動畫完成后,我想執行另一項操作。 我該如何實現?
您可以使用CATransaction打包以設置圖層動畫的完成塊。
CATransaction.begin()
CATransaction.setCompletionBlock({self.myFunction()})
myPathLayer.strokeEnd += 0.1
CATransaction.commit()
希望有更好的方法,但這就是我的方法。
您可以使用CAAnimation委托方法。
class Whatever: CAAnimationDelegate { ...
然后
let animation = CABasicAnimation(keyPath: <your_key_path>)
...
animation.delegate = self
並使用委托方法:
func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
if flag { <do_what_you_need_to> }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.