如何查找当前UIView动画的详细信息?

时间:2012-05-20 11:58:45

标签: uiview uianimation

我在自定义UIView类上有一个属性的setter方法。如果它在UIView动画块中设置,我希望它在视图的图层中添加CABasicAnimation,其持续时间与UIView动画相同。如何判断我是否在UIView动画块中,如何获得其持续时间和缓和曲线?

4 个答案:

答案 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动画选项立即执行指定的动画。

至于持续时间,你自己设定持续时间,所以你现在已经设定了。