geocoding - 尝试使用数组创建随机图像生成器
问题描述
我是 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()
}
}
]
解决方案
您可以在您的上使用randomElementString Array
,但我的建议是将您的数组转换为枚举。
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)
}
}
}
推荐阅读
- rust - 如何为 Rust 中的引用创建“Iterable”特征?
- php - 我在正确编写此代码时遇到问题
- configuration - 如何在 HAProxy 中启用 HTTP/3 (QUIC)?
- sql - 确定错过的时间 - 找到时间差距
- json - Flutter在listview中显示json数组
- xml - XSLT 输出不如预期
- ios - ImageCropper.Forms 在 ios 平台上不工作 (System.MissingMethodException)
- sql-server - 来自链接服务器的另一个表的 INSERT 触发器很慢
- audio - VXML 音频文件播放状态
- arrays - 具有多个 CountIf 的动态数组