快速将所有UI元素一次连接到一个插座

owl*_*ipe 4 xcode ios

使用Swift 2和XCode 7.2.1,有没有办法将所有UI元素(按钮和标签)连接到一个插座?我觉得这可以通过在所有元素上执行CMD-A然后控制拖动到您的代码来完成,但这只会将其中一个选定的元素连接到插座.

nhg*_*rif 7

你不能做这个.

可以连接多个UI元素的唯一内容是操作或插座集合.

重要的是,插座是对单个对象的单个引用:

@IBOutlet weak var label: UILabel!
Run Code Online (Sandbox Code Playgroud)

就像任何其他变量一样,它不能同时是两件或更多件事.它只能是一件事.如果我把另一件东西挂到这个插座上,它会解开以前连接到它的东西.


但是,我可以制作出口集合:

在此输入图像描述

@IBOutlet strong var labels: [UILabel]!
Run Code Online (Sandbox Code Playgroud)

我不认为一次连接多个元素有一个捷径,但你可以连接多个元素(虽然它一次一个).


重要的是要注意,默认情况下,Xcode会将插件集合创建为您所拖入的确切类型,并且您只能将该类型的元素或该类型的子类添加到集合中.

但是,您可以手动将类型更改为更广泛的类型,从而将更多内容联系起来:

@IBOutlet strong var labels: [UIView]!
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述


同样,@IBAction只要方法的接口有意义,就可以将不同类型的多个对象连接起来:

@IBAction func action(sender: AnyObject) {
    // write code to handle action here
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述