我们可以在 IBOutlet 名称中加入数字吗?

Can we put numbers in IBOutlet names?

IBOutlet 名称,如 upperIconSet1ViewupperIconSet2View;,然后在其中查看 frameIconView11frameIconView12frameIconView13frameIconView21, frameIconView22

这些名字以后会不会有什么问题?

它们是否符合命名约定?

还有其他名称建议吗?

是的,您可以在商店名称中加入数字。出口名称可以是任何 Swift 或 Objective-C 标识符。在这两种语言中,标识符的任何字符都可以是数字,但第一个字符除外。例如,这是合法的(但很难输入):

@IBOutlet var é9: UIView!

但是,我担心您需要多个带编号的名称,因为您希望循环访问它们,如下所示:

@IBOutlet var view1: UIView!
@IBOutlet var view2: UIView!
@IBOutlet var view3: UIView!

func doSomething() {
    for i in 1 ... 3 {
        // Not real syntax
        view$i.backgroundColor = .red
    }
}

虽然有很多方法可以实现,但它们要么需要额外的工作来维护,要么使用更高级(令人困惑)的 API。如果您只想存储一组视图,请将您的插座设为数组:

@IBOutlet var views: [UIView] = []

func doSomething() {
    for view in views {
        view.backgroundColor = .red
    }
}

这将在 storyboard/xib 编辑器中显示为“插座集合”,您可以同时将其连接到多个目标。