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

标签 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
        }
    }
}

最佳答案

您可以通过以下代码来完成此操作。

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

关于ios - 如何访问变量名称并将字符串更改为它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40585591/

相关文章:

ios - iOS 常量文件中的条件 IF/ELSE 语句

c - 当数组在 c 中达到长度 0 时断言中止

uitableview - 在自定义 UITableViewCell 类中创建 UIImageView (Swift)

swift - 使用未解析的标识符 'kCAFillModeForwards'

iphone - 如何在 Objective-C 中创建字符串或 float 组

ios - 升级到 xcode 9 后没有这样的模块 'Mapbox'

java - LeetCode 的二和问题 : Brute force solution approach not working?

arrays - 在单个图窗中显示存储在元胞数组中的高斯金字塔

ios - 转场后出现的场景

ios - Collection View 不会每次都重新加载