Как получить новый массив UIImage каждый раз, когда я нажимаю кнопку? - PullRequest
0 голосов
/ 26 апреля 2019

Таким образом, в основном у меня есть кнопка, и мне нужно, чтобы мой UIImage менялся случайным образом на одно из трех изображений в моем массиве каждый раз, когда я нажимаю кнопку. Прямо сейчас, что происходит, когда я нажимаю кнопку, она просто выбирает случайное изображение, а затем, когда я нажимаю на нее снова, изображение остается прежним.

Вот что я написал внутри своей кнопки:

@IBAction func scissorButton(_ sender: UIButton) {
    playerChoice.image = scissor.png
    computerChoice.image = computerArray[randomChoice]
}

Ответы [ 3 ]

0 голосов
/ 26 апреля 2019

Вы можете попробовать это, чтобы гарантировать, что каждый раз, когда вы нажимаете кнопку, вы получаете новое не похожее случайное изображение

var old = 0

@IBAction func scissorButton(_ sender: UIButton) {
   var randomChoice = 0
   while randomChoice == old {
     randomChoice = Int.random(in: 0..<computerArray.count)
   } 
   old = randomChoice
   computerChoice.image = computerArray[randomChoice]
}
0 голосов
/ 26 апреля 2019

Попробуй это, и у меня все будет нормально:

//Have an array of the name for your image like
let img = ["img1","img2","img3","img4"]

@IBAction func randomImageClick(_ sender: Any){

  self.imageView.image = UIImage(named: img[Int.random(in: img.count)]) // Look out for range of index. its size must be equal your array count, otherwise it'll get index out of range
}
0 голосов
/ 26 апреля 2019

Предположительно, вы сгенерировали случайное число один раз и сохранили результат в randomChoice. Но вам нужно генерировать новое случайное число при каждом нажатии кнопки.

Самый простой вариант:

@IBAction func scissorButton(_ sender: UIButton) {
    computerChoice.image = computerArray.randomElement()
}
...