gpt4 book ai didi

swift - UIView block 动画完成始终为真

转载 作者:可可西里 更新时间:2023-11-01 01:19:43 24 4
gpt4 key购买 nike

我有一个动画,我最近发现它不工作

//time is a variable used in my code
UIView.animate(withDuration: time, delay: 0, options: [.curveLinear, .allowUserInteraction], animations: {

//this class is ofType UIScrollView
self.setContentOffset(CGPoint(x: self.contentSize.width-self.frame.width, y: 0), animated: false)

//Completion Handler
}, completion: { finished in

//It's always true, not sure a way to fix this
if(finished ) {

但是,在我的代码后面,我有一个方法可以删除某些动画,特别是从此 scrollView 中。

self.layer.removeAllAnimations()

它被调用了,我认为它应该是上面的

if(finished ) { //Here

return false,所以不应该进去finished里面。但是,完成总是正确的。无论我是取消这个动画,还是继续这个动画,不管我对动画做了什么,完成处理程序总是真实的。关于此事的任何提示?

最佳答案

您对 setContentOffset 的调用指定了 animated:false,如果这是您要更改的唯一属性,则没有实际的动画在进行,因此对 .animate(...) 的调用将始终以 true 值完成.如果您使用 animated:true 设置此属性(或另一个属性)并且您的持续时间太短而动画无法完成,那么它可能会以参数的 false 值完成。

关于swift - UIView block 动画完成始终为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44478635/

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