swift - 特定功能在所有视图上同时运行。我怎样才能让它一个接一个地运行?
问题描述
我正在使用 SwiftUI 构建 Simon Says 应用程序,并且在构建它时遇到了一个错误。问题在于我在下面键入的一个特定功能。此函数设置 Simon Says 按钮的 alphas(只是一个简单的按钮动画)并将它们设置回 0.5。我希望它在每个视图上同时运行一个,因为到目前为止动画同时在所有按钮上运行。
所有帮助将不胜感激!
for index in settings.guessArray {
wait(time: 2.0) {
settings.alphas[index] = 1.0
wait(time: 0.3) {
settings.alphas[index] = 0.5
}
}
}
解决方案
也许这样的事情会起作用......
等待异步执行,因此增加每个按钮的初始等待时间以及时将它们分开:
var offset = 0.0
for index in settings.guessArray {
wait(time: 2.0 + offset) {
settings.alphas[index] = 1.0
wait(time: 0.3) {
settings.alphas[index] = 0.5
}
}
// increase this value to increase the spacing between the buttons
// lighting up
offset += 0.3
}
//if you're using this function on multiple SwiftUI views at the same time
//consider placing the offset variable in @EnvironmentObject.
推荐阅读
- java - 使用 PostgreSQL 在 Spring Boot 中的 JpaRepository 查询中返回列名
- c - visual studio 2017 srand() 崩溃(在线编译器工作)
- java - AES256 加密
- java - conn.rollback() 上的错误未处理 SQLException...如何正确使用 commit()?
- c - 在c中使用堆栈和指针
- python - Python 套接字错误
- c++ - 在类外部初始化的 constexpr 静态成员的声明中是否需要 constexpr 说明符?
- ruby-on-rails - Ruby on Rails 验证如果一个属性为真,则不能为空,否则允许为空
- azure - terraform azure OMS VM 扩展
- r - 如何通过 1000 x 1000 获得二进制/邻接矩阵的鸟瞰图?