首页 > 解决方案 > 尝试使用数组创建随机图像生成器

问题描述

我是 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()
    }
}


]

标签: geocoding

解决方案


您可以在您的上使用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)
    }
  }
}

推荐阅读