我是xcode和swiftui的新手,我试图使用在contentview中创建的一些花朵图像数组创建一个随机图像生成器。我希望它看起来像是单击一个按钮,然后弹出随机花。我不在乎这些图像是否重复。提前致谢!这是我到目前为止的内容:
[import SwiftUI
struct ContentView: View {
var flowers = ["carnation", "daffodil", "iris", "lily", "orchid", "peony", "poppy", "rose", "sunflower", "tulip"]
var body: some View {
Text("sunflower")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
]
答案 0 :(得分:0)
您可以在String Array
上使用randomElement,但我的建议是将数组转换为枚举。
struct ContentView: View {
private enum Flower: String, CaseIterable {
case carnation
case daffodil
case iris
case lily
case orchid
case peony
case poppy
case rose
case sunflower
case tulip
static var random: Flower {
allCases.randomElement()!
}
}
@State private var flower: Flower = .random
var body: some View {
Button(
action: { self.flower = .random }
) {
Image(flower.rawValue).renderingMode(.original)
}
}
}
struct ContentView: View {
private static let flowerNames = [
"carnation",
"daffodil",
"iris",
"lily",
"orchid",
"peony",
"poppy",
"rose",
"sunflower",
"tulip"
]
private static var randomFlowerName: String {
flowerNames.randomElement()!
}
@State private var flowerName = randomFlowerName
var body: some View {
Button(
action: { self.flowerName = Self.randomFlowerName }
) {
Image(flowerName).renderingMode(.original)
}
}
}