这个小型框架让您可以直接将完成块设置到 CAAnimation 对象中,并且 可能 会提高您动画代码的可读性。
有几种常见的方式可以通知 CAAnimation 的完成,第一种是使用类的代理方法,第二种是使用 CATransaction 的 setCompletionBlock 函数。然而,我个人认为这两个方案都不是理想的解决方案,因为前一个需要一个不同位置在代码中的动画对象和完成逻辑,导致代码分散,而后一个会在每次向 CALayer 添加动画对象时重复 CATransaction 的起始和提交语句。此框架将“completionBlock”属性添加到 CAAnimation 对象中,并在动画对象通过 sweater 方法添加到图层之前,使用 CATransaction 自动设置完成块,使您能够编写更简单的 CAAnimation 代码。