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

显然我不想有 name1, name2, , ETC。我班上有插座,但更喜欢 name[10] 大批。

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

有帮助吗?

解决方案

你不能做到这一点在IB,但你可以创建一个在您init方法的阵列和所有标签添加到它。

顺便说一句,可以设置一些标签的每个标签,并定义宏来访问它。不便等

#define NAME[TAG] (UILabel*)[self.view viewWithTag:TAG]

其他提示

可以当然这样做与界面生成器,该关键字是IBOutletCollection。它的作用主要是一个NSArray出多接口构建器出口。

IBOutletCollection(UILabel) NSArray *myLabels;

所以,接下来的事情是在Interface Builder连接您的标签,然后你可以使用数组在运行时可以访问所有的标签。

这可以通过出口集合来完成,请参阅此相关的问题

按照以下步骤创建插座阵列并将其与 IB 元素连接(以下是示例 UIView, , 您可以使用 UILabel 还):

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

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


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

enter image description here

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top