Ich glaube, ich muss meinen Code etwas aufräumen, da Xcode zum ersten Mal beim "Indexieren" einfriert und ich mein Projekt nicht ausführen kann. Ich denke, es ist einfach zu machen, aber ich weiß nicht, welcher Weg der Beste ist. Got 36 UIImageViews ...Code aufräumen? (Xcode friert bei der Indizierung ein)
@IBOutlet var Image1: UIImageView!
@IBOutlet var Image2: UIImageView!
@IBOutlet var Image3: UIImageView!
@IBOutlet var Image4: UIImageView!
@IBOutlet var Image5: UIImageView!
@IBOutlet var Image6: UIImageView!
@IBOutlet var Image7: UIImageView!
@IBOutlet var Image8: UIImageView!
@IBOutlet var Image9: UIImageView!
@IBOutlet var Image10: UIImageView!
@IBOutlet var Image11: UIImageView!
@IBOutlet var Image12: UIImageView!
@IBOutlet var Image13: UIImageView!
@IBOutlet var Image14: UIImageView!
@IBOutlet var Image15: UIImageView!
@IBOutlet var Image16: UIImageView!
@IBOutlet var Image17: UIImageView!
@IBOutlet var Image18: UIImageView!
@IBOutlet var Image19: UIImageView!
@IBOutlet var Image20: UIImageView!
@IBOutlet var Image21: UIImageView!
@IBOutlet var Image22: UIImageView!
@IBOutlet var Image23: UIImageView!
@IBOutlet var Image24: UIImageView!
@IBOutlet var Image25: UIImageView!
@IBOutlet var Image26: UIImageView!
@IBOutlet var Image27: UIImageView!
@IBOutlet var Image28: UIImageView!
@IBOutlet var Image29: UIImageView!
@IBOutlet var Image30: UIImageView!
@IBOutlet var Image31: UIImageView!
@IBOutlet var Image32: UIImageView!
@IBOutlet var Image33: UIImageView!
@IBOutlet var Image34: UIImageView!
@IBOutlet var Image35: UIImageView!
@IBOutlet var Image36: UIImageView!
override func viewDidLoad() {
let images = (1...6).map { UIImage(named: "Owl\($0)") }
let imageViewsArray = [Image1, Image2, Image3, Image4, Image5, Image6, Image7, Image8, Image9, Image10, Image11, Image12, Image13, Image14, Image15, Image16, Image17, Image18, Image19, Image20, Image21, Image22, Image23, Image24, Image25, Image26, Image27, Image28, Image29, Image30, Image31, Image32, Image33, Image34, Image35, Image36]
for view in imageViewsArray {
let randomIndex = Int(arc4random_uniform(UInt32(images.count)))
view.image = images[randomIndex]
}
}
Könnte ich ein IBOutlet für alle 36 Bilder zusammen machen? Oder so ähnlich? :-)
Info über den Code in ViewDidLoad()
here.
Ich vermute ernsthaft, dass Sie hier UICollectionView oder UITableView verwenden müssen, damit der Code weniger ... this. Lösche abgeleitete Daten (Fenster-> Projekte) und rüste den xCode neu auf. Es sollte danach gut funktionieren. – FruitAddict
@FruitAddict Danke! Aber ich weiß nicht, wie ich den Code zu einer UICollectionView ändern kann :-) –
Nun, wenn Sie 36 Bilder auf dem Bildschirm zeigen, müssen sie in irgendeiner Form von Raster oder Liste angeordnet werden. Anstatt 36 Steckdosen zu ziehen, könnten Sie 36 Zellen mit diesen Bildern füllen, der Code ist dann viel sauberer und erweiterbarer. – FruitAddict