找出当前动画块的动画持续时间

ada*_*ton 14 iphone animation uiview uiviewanimation

在UIView动画块中,有没有办法获得当前动画的持续时间?

[UIView animateWithDuration:1.0 animations:^{
    // float duration = ?
}];
Run Code Online (Sandbox Code Playgroud)

Den*_*kov 5

如果您正在定位iOS 9.0或更高版本,那么您正在寻找 的类属性UIView,称为inheritedAnimationDuration

用法:

let currentAnimationDuration = UIView.inheritedAnimationDuration
Run Code Online (Sandbox Code Playgroud)

来自苹果文档

概括

返回当前动画的继承持续时间。

讨论

如果在UIView动画块中调用此方法,则仅返回非零值。


Rol*_*n_s 0

既然您使用的是块,为什么不直接用它捕获变量呢?

CGFloat duration = 1.0;
[UIView animateWithDuration:duration animations:^{ 
    CGFloat theDuration = duration; 
}];
Run Code Online (Sandbox Code Playgroud)