我在自定义UIView
类上有一个属性的setter方法。如果它在UIView
动画块中设置,我希望它在视图的图层中添加CABasicAnimation
,其持续时间与UIView
动画相同。如何判断我是否在UIView
动画块中,如何获得其持续时间和缓和曲线?
答案 0 :(得分:2)
很简单.. 您可以使用
获取应用于视图的所有动画关键点[self.YourView.layer animationKeys];
答案 1 :(得分:1)
根据此问题,我将此扩展程序设为UIView
阻止动画:UIView+AnimatedProperty。
它允许您在从动画块调用setter时运行CAAnimations
。包含cornerRadius
的示例。
答案 2 :(得分:1)
您可以轻松获得当前动画。例如,设置CATransaction
:
CAAnimation *animation = [self.layer animationForKey:self.layer.animationKeys.firstObject];
[CATransaction begin];
[CATransaction setAnimationDuration:animation.duration];
[CATransaction setAnimationTimingFunction:animation.timingFunction];
// CALayer animation here
[CATransaction commit];
答案 3 :(得分:0)
[UIView animateWithDuration]的文档说明了
此方法使用UIViewAnimationOptionCurveEaseInOut和UIViewAnimationOptionTransitionNone动画选项立即执行指定的动画。
至于持续时间,你自己设定持续时间,所以你现在已经设定了。