Попытка создать генератор случайных изображений, используя массив - PullRequest
0 голосов
/ 05 апреля 2020

Я новичок в 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()
    }
}


]

1 Ответ

0 голосов
/ 05 апреля 2020

Вы можете использовать randomElement на вашем String 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)
    }
  }
}
...