Swift把多个IBOutlets放在一个数组中
我做了这些(用红色边框标记)IBOutlets使用ctrl + drag
但我不喜欢有9次完全相同的线(干)
我如何把这些IBOutlets放在一个数组中?
你可以像这样在Swift中定义一个通用的outlet集合:
@IBOutlet var collectionOfViews: Array<UIView>?
或者例如UIButton
对象:
@IBOutlet var collectionOfButtons: Array<UIButton>?
您可以像在文件所有者中一样在Outlet Collections组中find您的集合:
连接5个随机button后,它会显示在我的控制台上:
按照以下步骤创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()来帮助处理这个集合。 甜的权利?