我正在创建一个应用程序,其中每隔1秒的时间间隔,图像就会在木板上移动。为此,我创建了一个计时器,将9张图像隐藏起来,然后每秒使9张图像之一的.isHidden为false。但是,为此,我创建了一个包含所有9个imageView元素的数组,并期望当我从数组中调用randomElement()时,将选择其中一个ImageViews。到目前为止,我的应用已崩溃,因为除imageViews之外,我的其他所有数组都将崩溃。下面我粘贴了适用的代码,但请注意,下面两行位于计时器函数中,并且数组位于ViewDidLoad外部。
let kennyArray = [kenny1.self, kenny2.self, kenny3.self, kenny4.self, kenny5.self, kenny6.self, kenny7.self, kenny8.self, kenny9.self ]
randomKenny = kennyArray.randomElement()
randomKenny.isHidden = false
首先,您不需要.self
。我认为您的方法可以改进。代替创建UIImageView
的数组,您需要的是UIImage
和一个UIImageView
的数组。在时间间隔之后,而不是隐藏之后,将随机图像从数组设置为图像视图。
var images = [image1, image2, image3]
@objc func alterImage() {
imageView.image = images.randomElement()
perform(alterImage, with: self, afterDelay: 10)
}