我對 swiftUI 還很陌生,我并不完全理解變數是如何作業的。
我想制作一個 Picker,然后當用戶選擇其中一種口味時,他可以在下面編輯該口味的數量,因此變數數量也會發生變化(因此我可以在另一個視圖中顯示當前數量)。
正如您現在所看到的,這些值是隨機的( 1 - 6 ),但我想以某種方式讓用戶對它們中的每一個進行更改,這取決于用戶選擇哪一個。
您在哪里看到(當前庫存:)它也應該顯示所選風味的庫存。
這是我的代碼:
struct UpdateView: View {
var flavours = ["Romantic Suicide", "Project X", "Psycho", "Covid-19", "Dramalama", "Luxury"]
@State private var selectedFlavour = "Romantic Suicide"
var romanticSuicide = 3
var projectX = 2
var psycho = 1
var covid19 = 5
var dramalama = 4
var luxury = 6
var body: some View {
ZStack {
Image("BackgroundImage").resizable().scaledToFill().edgesIgnoringSafeArea(.all).opacity(0.2)
VStack {
Text("Select flavour").foregroundColor(.white).font(Font.custom("BebasNeue", size: 27))
Picker("Please choose a flavour", selection: $selectedFlavour) {
ForEach(flavours, id: \.self) {
Text($0)
}
}
Text("\(selectedFlavour) current stock: 1").foregroundColor(.white).font(Font.custom("BebasNeue", size: 22))}
}.background(.black)
}
}
struct UpdateView_Previews: PreviewProvider {
static var previews: some View {
UpdateView()
}
}
有人可以解釋一下我該怎么做嗎?提前致謝。
uj5u.com熱心網友回復:
例如,您可以創建一個名為“FlavourItem”的結構,其中包含 2 個變數:風味和數量。
struct FlavourItem {
var flavour: String
var amount: Int
}
然后,除了為 selectedFlavour 創建一個 @State 變數之外,您還可以為 FlavourItem 創建一個變數。
@State var flavourItem: FlavourItem
然后,您可以創建 UI 以要求用戶輸入他想要的內容并將其存盤在 FlavourItem 物件中。
您可以從該代碼開始:
import SwiftUI
struct FlavourItem: Hashable { // Neaded to use Picker
var flavour: String
var amount: Double
}
struct ContentView: View {
// Array of FlavourItems
var flavours: [FlavourItem] = [
FlavourItem(flavour: "Romantic Suicide", amount: 1),
FlavourItem(flavour: "Project X", amount: 2),
FlavourItem(flavour: "American Psycho", amount: 3),
FlavourItem(flavour: "Covid 19", amount: 4),
FlavourItem(flavour: "Dramalama", amount: 5),
FlavourItem(flavour: "Luxury", amount: 6)
]
@State private var selectedFlavour: FlavourItem = FlavourItem(flavour: "Romantic Suicide", amount: 1)
var body: some View {
VStack {
VStack {
Text("Select flavour").foregroundColor(.white).font(Font.custom("BebasNeue", size: 27))
Text("Select flavour").foregroundColor(.white).font(Font.custom("BebasNeue", size: 27))
Picker("Select flavour", selection: $selectedFlavour) {
ForEach(flavours, id: \.self) {
Text("\($0.flavour)")
}
}.clipped()
Text("\(selectedFlavour.flavour) current stock: \(selectedFlavour.amount)").font(Font.custom("BebasNeue", size: 22))
Slider(value: $selectedFlavour.amount, in: 0...20)
Text("Current flavour value: \(selectedFlavour.amount)")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/419490.html
標籤:
