gpt4 book ai didi

ios - 删除动画后保留动画 UIView 属性,但不使用类变量?

转载 作者:行者123 更新时间:2023-11-30 13:47:05 24 4
gpt4 key购买 nike

删除动画后保留动画 UIView 属性的正确方法是什么?

具体来说,目标是制作 10 秒进度条的动画。

如果用户在 5 秒后停止,进度条应保持在 5 秒。相反,一旦动画被删除,它就会跳到 10 秒,即最终值。

到目前为止唯一的解决方案是使用类变量,但这似乎很老套,少一个要跟踪的变量将是理想的。如果没有类变量,这可能吗?

我们尝试使用来自 presentationLayer 的值,如下所示,但也失败了。

private func animateProgressBar(recording: Bool) {
// Stop animation if not recording
if (!recording) {
print("Stopped recording")
progressBar.layer.removeAllAnimations()
return
}

// If here, animate progress bar
view.layoutIfNeeded()
UIView.animateWithDuration(VideoDur, delay: 0.0, options: .CurveLinear, animations: {
self.progressBarWidthConstraint.constant = self.view.frame.width
self.view.layoutIfNeeded()
}, completion: { finished in
if (finished) {
self.endRecording()
} else {
self.progressBarWidthConstraint.constant = self.progressBar.layer.presentationLayer()!.frame.width
self.view.layoutIfNeeded()
}
})
}

最佳答案

我个人可能会选择这个变量。如果你真的讨厌这个,我可能会暂停动画,而不是删除它。

progressBar.layer.speed = 0;
progressBar.layer.timeOffset = mediaTimeForLayer;

关于ios - 删除动画后保留动画 UIView 属性,但不使用类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34794902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com