我在当前的iPhone应用程序中有一个顶级列表视图,它由代码填充。我使用Interface Builder组装了视图,因此它包含很多UILabel
s。
显然,我不希望在班上有name1
,name2
等出口,但更喜欢name[10]
数组。
是否可以这样做,并将每个项目连接到相应的标签(或任何其他界面构建器,如视图)?
答案 0 :(得分:22)
您当然可以使用界面构建器执行此操作,关键字为IBOutletCollection
。它的作用基本上是多个界面构建器出口的NSArray。
IBOutletCollection(UILabel) NSArray *myLabels;
接下来就是在界面构建器中连接标签,然后您可以使用该数组在运行时访问所有标签。
答案 1 :(得分:0)
您无法在IB中执行此操作,但您可以在init
方法中创建一个数组并添加所有标签。
顺便说一下,你可以为每个标签设置一些标签,并定义宏来访问它。喜欢
#define NAME[TAG] (UILabel*)[self.view viewWithTag:TAG]
答案 2 :(得分:0)
这可以使用outlet集合完成,请参阅this related question。
答案 3 :(得分:0)
按照以下步骤创建一个插座阵列,并将其与IB Elements连接(以下是UIView
的示例,您也可以使用UILabel
):
-
class ViewController2: UIViewController {
@IBOutlet var collection:[UIView]!
override func viewDidLoad() {
super.viewDidLoad()
}
}