Swift把多个IBOutlets放在一个数组中

多个IBOutlets

我做了这些(用红色边框标记)IBOutlets使用ctrl + drag

但我不喜欢有9次完全相同的线(干)

我如何把这些IBOutlets放在一个数组中?

你可以像这样在Swift中定义一个通用的outlet集合:

 @IBOutlet var collectionOfViews: Array<UIView>? 

或者例如UIButton对象:

 @IBOutlet var collectionOfButtons: Array<UIButton>? 

您可以像在文件所有者中一样在Outlet Collections组中find您的集合:

出口集合

连接5个随机button后,它会显示在我的控制台上:

将UIButton实例连接到Collection

按照以下步骤创build一个连接IB元素的socketsarrays:

  • 创build一个IBOutlets数组
  • 在Storyboard ViewController界面中添加多个UIElements(Views)
  • selectViewController(在故事板)并打开连接检查器
  • 在连接检查员有选项“出口收集”(你会看到一系列的网点)
  • 连接,如果你的界面元素

 class ViewController2: UIViewController { @IBOutlet var collection:[UIView]! override func viewDidLoad() { super.viewDidLoad() } } 

在这里输入图像说明

这里的解决schemeSwift – IBOutletCollection等效

@IBOutlet var objectCollection:[Object]

从两个视图窗格开始,您可以看到代码和故事板。 当您从UI向您的代码创build第一个IBOutlet连接时,请仔细查看Connection下拉字段,然后select名为“Outlet Collection”的选项。 这将自动创build一个IBOutlets数组。 接下来,只需查找放置在创build数组的代码中的圆圈内的小黑圈即可。 只需从这个圈子拖动到所有其他UI对象,你想连接到相同的集合(不知道如果你可以混合types)。 同样,您可以将所有对象连接到一个Action,方法是从创build的第一个黑点拖动到要连接到该操作的所有其他对象。 还要考虑EnumerateSequence()来帮助处理这个集合。 甜的权利?