首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用数组创建随机图像生成器

尝试使用数组创建随机图像生成器
EN

Stack Overflow用户
提问于 2020-04-05 11:16:01
回答 1查看 127关注 0票数 0

我是xcode和swiftui的新手,我正在尝试使用我在contentview中创建的一些花朵图像数组来创建一个随机图像生成器。我希望它看起来是这样的,你点击一个按钮,一个随机的花朵就会弹出来。我不介意图像重复。提前感谢!这是我到目前为止所知道的:

代码语言:javascript
复制
[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()
    }
}


]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-05 12:03:02

您可以在String Array上使用randomElement,但我的建议是将数组转换为枚举。

代码语言:javascript
复制
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)
    }
  }
}
代码语言:javascript
复制
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)
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61037580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档