gpt4 book ai didi

ios - 为什么当我尝试为雨设置动画时此 sleep 功能不起作用?

转载 作者:搜寻专家 更新时间:2023-10-31 22:22:36 25 4
gpt4 key购买 nike

这是我的代码:

@IBAction func click(sender: UIButton) {
for var x = 0; x<100; ++x{
r1.center.y += 0.2
usleep(10000)
}
}

我在 Xcode 7.0 beta 中使用 Swift。我使用 UIButton 对其进行测试并将其简化为一个雨滴。当我单击时,我希望它平稳地(尽我所能)向下移动。

但现在,它只是等待所有 usleep(10000) 函数完成(其中 100 个),因此它不会移动 1 秒,然后向下移动 20px。我是在使用 sleep() 函数(实际上是 usleep())错误还是我必须使用不同类型的等待函数才能使动画正常工作?

值得一提的是,当我在模拟器中运行代码时,我没有遇到任何错误。

最佳答案

仅当程序控制返回主事件时才更新 UI环形。因此,您对 r1.center 的修改将变得可见仅当 click() 方法返回时。

此外,您长时间阻塞主线程,这通常很糟糕,因为没有处理任何事件并且没有更新 UI,所以应用程序变得无响应。阻塞主线程太久可能导致程序被操作系统杀死。

您可以使用一个计时器来代替更新位置的回调函数。

或者(如评论中所述),使用 Core Animation .

关于ios - 为什么当我尝试为雨设置动画时此 sleep 功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30963470/

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