特定功能在所有视图上同时运行。如何使它一个接一个地运行?

时间:2019-06-30 10:30:01

标签: swift swiftui

我正在使用SwiftUI构建Simon Says应用程序,而在构建该应用程序时,我遇到了一个错误。 问题出在下面我键入的一个特定功能上。 此功能设置Simon Says按钮的alpha(只是按下按钮的简单动画)并将其设置回0.5。我希望每次在每个视图上都运行一次,因为到目前为止,动画同时在所有按钮上运行。

所有帮助将不胜感激!

Sub Test()

Dim Mn As Long, Mx As Long, X As Long

With ThisWorkbook.Sheets(1)
    .Range("A:A").Clear
    Mn = Application.InputBox(prompt:="Minimum", Type:=1)
    Mx = Application.InputBox(prompt:="Maximum", Type:=1)
    If Mn > 0 And Mx > 0 Then
        For X = Mn To Mx
            .Cells(X, 1).Value = X
        Next X
    End If
End With

End Sub

2 个答案:

答案 0 :(得分:1)

也许类似的事情会起作用...

等待是异步执行的,因此增加了每个按钮的初始等待时间,以便及时将它们隔开:

public class CustomLabel: UILabel {
    override public var font: UIFont! {
        get { return super.font }
        set {
            super.font = UIFont(name: "Font-Name", size: super.font.pointSize)
        }
    }
}

答案 1 :(得分:0)

我在这里盲目飞行,但是您用信号量实现了什么。从下面的代码改编:

let semaphore = DispatchSemaphore(value: 0)

for index in settings.guessArray {
    semaphore.wait() // When animation on one button begins
    wait(time: 2.0) {
        settings.alphas[index] = 1.0
        wait(time: 0.3) {
            settings.alphas[index] = 0.5
            semaphore.signal() // When animation on a button finishes
        }
    }
}