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

时间:2018-01-27 17:38:42

标签: ios iboutlet

IBOutlet名称如upperIconSet1ViewupperIconSet2View;,然后为其中的观看frameIconView11frameIconView12frameIconView13frameIconView21frameIconView22

这些名字可以在以后引起任何问题吗?

它们是否符合命名惯例?

还有其他名字建议吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以在插座名称中输入数字。出口名称可以是任何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编辑器中显示为“outlet collection”,您可以将它同时连接到多个目标。