我使用ctrl + drag
制作了这些(用红色边框标记)IBOutlets
但我不喜欢完全相同的9次线(干)
我如何将这些IBOutlet放入数组中?
您可以在Swift中定义一个通用插座集合,如下所示:
@IBOutlet var collectionOfViews: Array<UIView>? // = [UIView]?
或者例如UIButton
对象:
@IBOutlet var collectionOfButtons: Array<UIButton>? // = [UIButton]?
您可以在Outlet Collections组下找到您的集合,通常位于文件所有者中:
连接5个随机按钮后,它会在我的控制台上显示:
按照以下步骤创建一个插座阵列,并将其与IB Elements连接:
-
class ViewController2: UIViewController {
@IBOutlet var collection:[UIView]!
override func viewDidLoad() {
super.viewDidLoad()
}
}
解决方案在这里Swift - IBOutletCollection equivalent
@IBOutlet var objectCollection:[Object]
从两个视图窗格开始,您可以在其中看到代码和故事板。当您从UI到代码建立第一个IBOutlet连接时,只需仔细查看Connection下拉字段并选择名为“Outlet Collection”的选项。这将自动创建一个IBOutlets数组。接下来只需查看放置在创建数组的代码中的圆圈内的小黑圈。只需从此圆圈拖动到要连接到同一集合的所有其他UI对象(不确定是否可以混合类型)。类似地,您可以通过从创建的第一个黑点拖动到要连接到该操作的所有其他对象,将所有对象连接到一个Action。还要考虑使用EnumerateSequence()来帮助使用此Collection。好吧?