我想设置一个 UIView 动画,但我不想花费给定的时间,而是想控制百分比进度并让它自动为我插入值。那可能吗?谢谢
最佳答案
我想我明白了。在 [UIView animate...] block 之后,立即在 Root View 上执行以下操作:
_view.layer.speed = 0.0;
_view.layer.timeOffset = [_view.layer convertTime:CACurrentMediaTime() fromLayer:nil];
要设置刻度上的点,请执行以下操作:
_view.layer.timeOffset = 0..1; (where 1 is the same value as the original duration)
要恢复,类似于以下内容:
CALayer *layer = _view.layer;
CFTimeInterval pausedTime = [layer timeOffset];
layer.speed = 1.0;
layer.timeOffset = 0.0;
layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
layer.beginTime = timeSincePause;
全部来自这里:https://developer.apple.com/library/ios/qa/qa1673/_index.html
关于ios - 手动控制 UIView 动画的进度,而不是通过持续时间自动控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22651949/