ios - 动画 CAShapeLayer : Do On Completion

标签 ios swift core-animation cashapelayer

我有一个 CAShapeLayer,我偶尔会在 NSTimer 循环中更新它的 strokeEnd。效果很好,当我打电话时:

myPathLayer.strokeEnd += 0.1

此路径更改会自动按照我的意愿进行动画处理。我的问题是,因为这不是函数调用,所以没有完成 block 。一旦这个动画完成,我想执行另一个 Action 。我怎样才能做到这一点?

最佳答案

您可以使用 CATransaction 包装来为层动画设置完成 block 。

CATransaction.begin()
CATransaction.setCompletionBlock({self.myFunction()})
myPathLayer.strokeEnd += 0.1
CATransaction.commit()

希望有更好的方法,但我就是这样做的。

关于ios - 动画 CAShapeLayer : Do On Completion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39552361/

相关文章:

objective-c - 顺序核心动画的设计模式

ios - CA动画麻烦

ios - Cordova/Phonegap 在 iOS 超时时构建地理定位

iphone - 注册地址簿更改,使用 ABAddressBookRegisterExternalChangeCallback

ios - UIViewController viewDidLoad 不正确的宽度/高度

swift - 展开可选值、UITableViewCell、cellForRowAtIndexPath 时意外发现 nil

swift - MDChip 选择的图像正在取代我的标题标签

swift - displayLink - 编译器永远修复我

iphone - CABasicAnimation 在 3G 上比在 4/4S/ipod4 上快得多

ios - 如何在编辑其他字段时自动折叠表单中的 DatePicker?