Swift将多个IBOutlet放入一个数组中

问题描述 投票:27回答:4

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

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

我如何将这些IBOutlet放入数组中?

ios swift cocoa iboutlet iboutletcollection
4个回答
38
投票

您可以在Swift中定义一个通用插座集合,如下所示:

@IBOutlet var collectionOfViews: Array<UIView>? // = [UIView]?

或者例如UIButton对象:

@IBOutlet var collectionOfButtons: Array<UIButton>? // = [UIButton]?

您可以在Outlet Collections组下找到您的集合,通常位于文件所有者中:

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


19
投票

按照以下步骤创建一个插座阵列,并将其与IB Elements连接:

  • 创建一个IBOutlets数组
  • 在Storyboard ViewController界面中添加多个UIElements(视图)
  • 选择ViewController(在故事板中)并打开连接检查器
  • 连接检查器中有“Outlet Collections”选项(您将在那里看到一系列插座)
  • 连接if与您的界面元素

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


    override func viewDidLoad() {
        super.viewDidLoad()
    }
}


1
投票

解决方案在这里Swift - IBOutletCollection equivalent

@IBOutlet var objectCollection:[Object]


0
投票

从两个视图窗格开始,您可以在其中看到代码和故事板。当您从UI到代码建立第一个IBOutlet连接时,只需仔细查看Connection下拉字段并选择名为“Outlet Collection”的选项。这将自动创建一个IBOutlets数组。接下来只需查看放置在创建数组的代码中的圆圈内的小黑圈。只需从此圆圈拖动到要连接到同一集合的所有其他UI对象(不确定是否可以混合类型)。类似地,您可以通过从创建的第一个黑点拖动到要连接到该操作的所有其他对象,将所有对象连接到一个Action。还要考虑使用EnumerateSequence()来帮助使用此Collection。好吧?

© www.soinside.com 2019 - 2024. All rights reserved.