我有一個黑色的圓圈,當應用程式啟動時,我希望它的X偏移量能以影片方式從0到100。換句話說,我想讓圓圈以影片方式向右移動,直到它觸及灰盒的右邊緣。我還希望圓圈的顏色在觸及灰色框的右邊緣時,在沒有影片的情況下突然從黑色變為藍色。
正如您在下面看到的那樣,盡管我的代碼沒有指定圓圈應隨著影片而改變顏色,但圓圈還是通過影片逐漸從黑色變為藍色。
我怎樣才能擺脫這個不需要的影片,并在圓圈接觸到灰盒邊緣的那一刻突然改變顏色呢?
import SwiftUI
struct ContentView。View {
@State var circleOffset:CGFloat = 0
var body。some View {
HStack {
Circle()
.frame(width: 100)
.offset(x: circleOffset)
.foregroundColor(circleOffset == 100 ? /span> .blue : .black)
}
.frame(width: 300, height: 150)
.background(Color.gray)
.onAppear{
withAnimation(.linear(duration: 2)) {
circleOffset = 100。
}
}
}
}
uj5u.com熱心網友回復:
你在同一個狀態下加入了顏色的變化,你把它做成了影片,所以如果你需要立即改變顏色,你必須用不同的、不可影片的狀態來更新它,比如
struct ContentView。View {
var circleOffset:CGFloat = 0
var toggleColor = false
var body: some View {
HStack {
Circle()
.frame(width: 100)
.foregroundColor(toggleColor ? .blue : .black)
.offset(x: circleOffset)
}
.frame(width: 300, height: 150)
.background(Color.gray)
.onAppear{
withAnimation(.linear(duration: 2)) {
circleOffset = 100。
}
DispatchQueue.main.asyncAfter(deadline: .now() 2) {
toggleColor.toggle()
}
}
}
}
使用Xcode 13 / iOS 15進行測驗
。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/321928.html
標籤:
上一篇:如何在Swift/iOS的UIColorPickerViewController上只顯示網格標簽?
下一篇:分頁查詢的成本很高

