我有两个子视图 - 在superview上使用一个(CGFloat)属性有条件地设置其内容偏移的scrollviews。我想动画对此属性的更改,以便动画流畅 我遇到的问题是当我使用
时[UIView animateWithDuration:...
...
animations:^{
self.property = x;
}
动画确实发生但两个滚动视图是独立动画的,并且不遵循在setter中触发的属性设置的规则(在一个滚动视图和另一个滚动视图上设置偏移的递归调用等)。 ..)。
我尝试使用自定义CALayer,其属性'链接到自定义视图的属性,并使用CoreAnimation设置此属性的动画',其中动画keyPath是此属性'。我超越了
+(BOOL)needsDisplayForKey:(NSString *) key
结果,没有任何动画。 有没有办法如何为属性设置动画,以便结果是一个流畅的动画?
编辑:我知道这可以通过使用计时器和做一些数学(对于动画的计时器功能的效果,如'缓出')来完成,但我猜测可能有一个更优雅的解决方案,更可重复使用(使用不同的计时器功能等。)。答案 0 :(得分:0)
您的财产是什么类型或类别?您不可能使用持续时间的动画增加任何基本类型,您可能更好地使用for循环并自行递增。
答案 1 :(得分:0)
我最后使用CADisplayLink来连续更新属性值,并使用缓动函数计算更新差异,以实现缓出效果。