簡體   English   中英

SwiftUI 更改和動畫前景色

[英]SwiftUI change and animate foreground color

我是 swiftUI 的新手,我正在嘗試將藍色視圖 flash 顯示為綠色半秒鍾,然后將 go 恢復為藍色。 我嘗試了多種方法。 我嘗試將顏色設置為 state 變量,但這不起作用。 在下面的當前代碼中,視圖只是保持藍色。 當前實施

您可以使用 State 變量來做到這一點

@State private var color = Color.red
  var body: some View {

      Circle()
        .aspectRatio(contentMode: .fit)
        .foregroundColor(color)
      .onAppear {
        withAnimation(.easeInOut(duration: 4)) {
           self.color = Color.blue

        }
        DispatchQueue.main.asyncAfter(deadline: .now() + 4.0) {
            withAnimation(.easeInOut(duration: 4)){self.color = Color.red }
        }


    }
  }

我寫了這個,但它似乎跳過了第一個 animation。

@State private var color = Color.blue

var body: some View {
    Circle()
    .aspectRatio(contentMode: .fit)
    .foregroundColor(color)
        .onAppear {
            withAnimation(.easeInOut(duration: 2)) {
                self.color = Color.green
            }
            withAnimation(
                Animation.easeInOut(duration: 2)
                    .delay(2)
                ) {
                self.color = Color.blue
            }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM