gpt4 book ai didi

Swift:当计时器触发时,如何阻止平移手势取消?

转载 作者:行者123 更新时间:2023-11-30 11:21:50 25 4
gpt4 key购买 nike

这个问题很简短,我不认为它需要显示代码,但我想了解为什么我的应用程序要这样做。

在我的 ViewController 中,我有一个倒计时 Timer,它每秒触发一次,并使用 seconds -= 1 更新 View 中的标签(例如)。一切都按其应有的方式完美运行...没什么大不了的。

但是,我在同一 View 中还有一个可以拖动的 UIButton。每次我的 Timer() 触发(每秒)时都会出现问题...我的 PanGesture(拖动 UIButton)被取消并且 UIButton 被丢弃。

是否需要在 UIButtonTimer 上设置某个属性来防止这种情况发生?

非常感谢您的建议!

最佳答案

尽管我无法发现其背后的原因,但我了解到的是:

  • 如果您处于 UIPanGesture 中间(拖动 UIView)并尝试更新标签上的文本(即更新 UI),您的 UIPanGesture 将取消并 .ended将被调用。当我的计时器更新标签上的文本时,这种情况每秒都会发生。
  • 在我的应用程序中,显示倒计时值的标签最初在我的 View 中隐藏( alpha = 0 ),即使我在其上执行文本更新也是如此,并且仅当我的倒计时标签不存在时,要拖动的 UIButton 才可见t。
  • 所以我的解决方法是仅在标签上的文本实际可见时更新它。这样,当我可以拖动 UIPanGesture 时,它​​不会受到影响,但是当 label 时变得可见,而我的 UIButton 不可见,那么我可以更新 label 上的文本根据需要无需担心拖动 UIButton。

我知道这是一个非常适合我的自定义修复,但如果有人知道导致问题的原因,请分享:)

关于Swift:当计时器触发时,如何阻止平移手势取消?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51182103/

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