我一直在寻找这个混帐问题超过一个小时,这很简单!
我有9张图片,我想在一个函数中引用它们中的任何一个。它们都被命名为“img1”“img2”等。它们也与IBOutlets的代码相关联。
Func changeImage(imgNumber: Int){
imageName = "img" + String(imgNumber)
self.imageName.image = UIImage( named: "smiley.jpg") }
我知道我可以通过说“self.img1.image”来引用实际对象,而不是imageName变量,但这不允许我用函数动态地改变任何图像。
请帮忙!
答案 0 :(得分:0)
将图片放入Asset Catalog
。
(您可以通过新文件创建一个...> iOS资源>资产目录)。
在资产目录中,为您的图像命名,如image1,image2,image3等。
UIImage(named: "image1")
会在资产目录中找到图片。
使用Asset Catalog
的好处是您可以轻松添加支持不同屏幕分辨率的图像。
(可选)手动加载它们,并将它们放入数组中并按索引访问(如果存在要使用的逻辑顺序)。
答案 1 :(得分:0)
您应该将它们放入保留订单的集合(例如,在viewDidLoad中),即
var images = [self.img1, self.img2, self.img3]
并使用索引访问指定的按钮
images[idx].image = UIImage(named: "smiley.jpg")
如果您需要更多动态订单,可以使用标记并遍历子视图以查找指定的视图。我不建议这样做,因为调试很麻烦。
你可以使用插座收藏品,但根据我的理解,他们不会保留订单。这意味着您必须找到另一种方法来对按钮进行排序(x坐标,y坐标或标记)。