4

我当前的 iPhone 应用程序中有一个顶部列表视图,它由代码填充。我已经使用 Interface Builder 组装了视图,因此它包含很多UILabels。

显然,我不希望在我的班级中有name1,name2等插座,但更喜欢name[10]数组。

是否可以这样做,并将每个项目连接到适当的标签(或任何其他界面构建器,如视图)?

4

4 回答 4

22

您当然可以使用界面生成器来执行此操作,关键字是IBOutletCollection. 它所做的基本上是多个接口构建器出口中的一个 NSArray。

IBOutletCollection(UILabel) NSArray *myLabels;

所以接下来的事情就是在界面生成器中连接你的标签,然后你可以使用数组在运行时访问所有标签。

于 2011-01-12T10:03:11.447 回答
1

按照以下步骤创建一个插座阵列并将其与 IB Elements 连接(这里是 的示例UIView,您也可以使用UILabel):

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

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


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

在此处输入图像描述

于 2017-10-26T10:39:07.847 回答
0

您不能在 IB 中执行此操作,但您可以在init方法中创建一个数组并将所有标签添加到其中。

顺便说一句,您可以为每个标签设置一些标签并定义宏来访问它。喜欢

#define NAME[TAG] (UILabel*)[self.view viewWithTag:TAG]
于 2009-12-17T10:24:55.763 回答
0

这可以使用插座集合来完成,请参阅此相关问题

于 2011-01-12T09:53:49.300 回答