我有一个自定义UIView
类上的属性的 setter 方法。如果它设置在UIView
动画块中,我希望它以CABasicAnimation
与动画相同的持续时间和缓动添加到视图层UIView
。如何确定我是否在UIView
动画块内,以及如何获得其持续时间和缓动曲线?
问问题
1903 次
4 回答
2
非常简单..您可以使用将所有动画键应用于您的视图
[self.YourView.layer animationKeys];
于 2013-03-04T12:43:27.873 回答
1
基于这个问题,我做了这个扩展来UIView
阻止动画:UIView+AnimatedProperty。
它允许您在CAAnimations
从动画块调用 setter 时运行。包括示例cornerRadius
。
于 2013-02-03T11:11:27.423 回答
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];
于 2014-04-10T20:45:53.460 回答
0
[UIView animateWithDuration] 的文档指出
此方法使用 UIViewAnimationOptionCurveEaseInOut 和 UIViewAnimationOptionTransitionNone 动画选项立即执行指定的动画。
至于持续时间,您自己设置持续时间,所以您现在已经这样做了。
于 2013-02-02T18:09:01.503 回答