Индекс следующего изображения - forms.count-1
. Вместо того, чтобы назначать цвет для image1
, попробуйте установить цвет images[forms.count-1]
:
@IBAction func buttonPressed(_ sender: UIButton) {
if let randomColor = colors.randomElement() {
forms.append(randomColor)
let index = forms.count - 1
guard index < images.count else {
// index out of bounds
return
}
switch forms.last {
case "Green":
images[index].backgroundColor = #colorLiteral(red: 0.1960784346, green: 0.3411764801, blue: 0.1019607857, alpha: 1)
case "Red":
images[index].backgroundColor = #colorLiteral(red: 0.521568656, green: 0.1098039225, blue: 0.05098039284, alpha: 1)
default:
print("Unknow")
}
}
}
ОБНОВЛЕНИЕ:
Чтобы показать последние 4 элемента, попробуйте этот фрагмент кода:
@IBAction func buttonPressed(_ sender: UIButton) {
if let randomColor = colors.randomElement() {
forms.append(randomColor)
if forms.count > images.count {
forms.removeFirst()
}
for i in 0..<forms.count {
switch forms[i] {
case "Green":
images[i].backgroundColor = #colorLiteral(red: 0.1960784346, green: 0.3411764801, blue: 0.1019607857, alpha: 1)
case "Red":
images[i].backgroundColor = #colorLiteral(red: 0.521568656, green: 0.1098039225, blue: 0.05098039284, alpha: 1)
default:
print("Unknow")
}
}
}
}