我是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()
}
}
]发布于 2020-04-05 12:03:02
您可以在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)
}
}
}https://stackoverflow.com/questions/61037580
复制相似问题