我有一个设置UIView属性的方法。我在某些情况下从UIView animateWithDuration:
块直接调用它。在这个方法中,我更改了视图层的路径,因此它对动画的操作不正确(路径必须明确地设置动画)。
如何确定从[UIView animateWithDuration:...]
内部调用我的方法?
[UIView animateWithDuration:duration animations:^{ [myClass myMethod]; }];
...
- (void)myMethod
{
if (__view_is_animating__) // how to check here?
{...}
}
目前我在viewIsAnimationFlag
之前设置自定义[UIView animateWithDuration:...]
并在myMethod
中查看,但这很粗鲁。
答案 0 :(得分:0)
感谢DavidRönnqvist在objc.io:
“只要图层要求操作(任何可动画属性的动画处理程序),视图就会返回NSNull
,除非在动画块内发生属性更改”
NSLog(@"we are inside animation block: %@",
[myView actionForLayer:myView.layer forKey:@"position"] ? @"YES" : @"NO");