ios - 手动控制 UIView 动画的进度,而不是通过持续时间自动控制

标签 ios iphone objective-c uiview core-animation

我想设置一个 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/

相关文章:

ios - 如何识别来自特定 NSManagedObjectContext 保存操作的通知?

iphone - coredata 应用程序目录

ios - Objective-C - 同时关闭表单和页面表

objective-c - 将 block 存储在数组中

ios - 使用 Swift IOS 语言通过蓝牙发送信息

ios - 使用 AVCapturePhotoOutput 使用闪光灯拍照时出现问题

iphone - 如何通过 NSDate 对象增加一秒

ios - Mvvm交叉/Xamarin "This class is not key value coding-compliant for the key"

ios - 分组 Xcode 方案

iphone - 将远程图像保存到文档/图像文件夹