如何访问变量名称并将字符串更改为它

时间:2016-11-14 09:36:32

标签: ios arrays swift uiimageview

我有多个图像,它们被命名为image0,image1,image2 ...,image(x)。

我的问题是如何访问他们的名字,因为我想将所有这些名称放在数组中:

@IBOutlet weak var image0: UIImageView!
@IBOutlet weak var image1: UIImageView!
@IBOutlet weak var image2: UIImageView!
@IBOutlet weak var image3: UIImageView!
@IBOutlet weak var image4: UIImageView!
@IBOutlet weak var image5: UIImageView!
...
@IBOutlet weak var image15: UIImageView!
    var counter: Int = 0
    var items :[[UIImageView]] = []
    for i in 0..<4{
        for j in 0..<4{
            items[i][j]=image(counter) //this line should be something that image0,1..x assign to the array
            counter += 1
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您可以通过以下代码执行此操作。

Swift 3

var items : [[UIImageView]] = []
let myMirror = Mirror(reflecting: self)
for i in 0..<4 {
    items.insert([UIImageView](), at: i)
    for j in 0..<4 {
        let propertyName = "image\(i*4 + j)"
        items[i].insert(myMirror.descendant(propertyName) as! UIImageView, at: j)
    }
}

但是,这不是开发人员使用的代码,请查看使用UICollectionView

答案 1 :(得分:0)

我明白你要做什么。遗憾的是,变量名称在编译时进行评估,因此这是不可能的。您可以做的最好的事情是手动创建数组。

[[image0, image1, image2], [image3, image2, image3], ...]