我有一個頁面視圖,它呼叫陣列的索引來填充頁面。當發生某些事情時,我想增加索引,以便它更新頁面的內容。在這個代碼示例中,我在按下按鈕時發生了這種情況。在我的真實應用程式中,我希望在計時器達到 0 時發生這種情況,但我懷疑如果我能弄清楚如何讓這個按鈕按下版本作業,我可以將其推斷到我的實際用例中。這是您審核的簡單代碼:
import SwiftUI
struct LanguageStruct: Identifiable {
var id = UUID()
var groupTitle: String
var title: String
var subTitle: String
var image: String
}
var progLanguages = [
LanguageStruct(groupTitle: "Java", title: "Lame Langauge", subTitle: "Bad GUI", image: "Push-ups Wide"),
LanguageStruct(groupTitle: "SwiftUI", title: "Nice and New", subTitle: "Better than Swift but incomplete", image: "Sit-ups")
]
struct Playground_arrays: View {
@State private var index = 0
var programming: LanguageStruct
var body: some View {
VStack {
Text(programming.groupTitle)
Text (programming.subTitle)
Image(programming.image)
Button(action:{
//actions go here
if index < 2{
index = 1
}else{
index = 0
}
}, label:{
Text("Change Index")
.fontWeight(.semibold)
})
.buttonStyle(PrimaryButtonStyle(buttonColor: "PositiveGreen"))
}
}
}
struct Playground_arrays_Previews: PreviewProvider {
static var previews: some View {
Playground_arrays(programming: progLanguages[0])
.previewDevice("iPhone 12 mini")
}
}
有人可以幫我弄清楚如何在按下按鈕時更新陣列的索引,以便我可以更新頁面內容嗎?這似乎真的應該像獲取上面的indexvar 計數器并將其放入programing: progLanguages[index]字串或其他東西一樣簡單,但我一生都無法弄清楚如何使其作業:(
uj5u.com熱心網友回復:
只需programming作為動態吸氣劑:
struct Playground_arrays: View {
@State private var index = 0
var programming: LanguageStruct {
progLanguages[index]
}
var body: some View {
VStack {
Text(programming.groupTitle)
Text (programming.subTitle)
Image(programming.image)
Button(action:{
//actions go here
if index < progLanguages.count - 1 {
index = 1
} else {
index = 0
}
}, label:{
Text("Change Index")
.fontWeight(.semibold)
})
.buttonStyle(PrimaryButtonStyle(buttonColor: "PositiveGreen"))
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/326250.html
上一篇:我可以在沒有許可證的情況下構建的商業iOS應用程式中使用Helvetica字體嗎?
下一篇:Flutter:如果流是Bloc狀態的一部分,如何將StreamBuilder與BlocBuilder一起使用?
