尝试使用数组创建随机图像生成器
Trying to create a random image generator using an array
我是 xcode 和 swiftui 的新手,我正在尝试使用我在内容视图中创建的一些花卉图像数组来创建一个随机图像生成器。我希望它看起来像你点击一个按钮,随机弹出一朵花。我不介意图像是否重复。提前致谢!这是我目前所拥有的:
[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()
}
}
]
您可以在 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)
}
}
}
我是 xcode 和 swiftui 的新手,我正在尝试使用我在内容视图中创建的一些花卉图像数组来创建一个随机图像生成器。我希望它看起来像你点击一个按钮,随机弹出一朵花。我不介意图像是否重复。提前致谢!这是我目前所拥有的:
[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()
}
}
]
您可以在 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)
}
}
}