实际有效使用IBOutletColletion

时间:2010-09-03 12:20:26

标签: iphone objective-c xcode interface-builder

如何看待IBOutletCollection的实际用法?不幸的是,Apple文档在没有更广泛的使用概念的情况下提及了它。好吧,它与IB保持一对多的关系,但如何有效地访问和使用特定对象?使用TagName?如何确保对象的顺序?

3 个答案:

答案 0 :(得分:5)

我最近用它来轻松初始化标签网格。我在视图上有一个n×n的标签矩阵,并且单独引用每个标签(通过IBOutlet)以显示相关数据。但是,当视图首次加载时,我想控制所有标签中显示的默认文本。最初我想要一个破折号显示,但由于这是一个客户,我希望它很容易改变。根据客户的要求,视图内容会随着时间的推移而不断变化。

我没有编写N行代码,而是创建了一个IBOutletCollection并在4中完成了相同的结果(@ property,@synthesize和for循环)。 YMMV,但我发现它在这种情况下非常有用。

答案 1 :(得分:0)

在Interface Builder用户指南中再次阅读this section

IBOutletCollection实际上只是NSArray你可以连接到IB中的多个对象。您连接的所有对象最终都在此数组中,并且可以像代码中的任何其他对象一样从代码中访问。

答案 2 :(得分:0)

我用它来减少代码。我有一系列的UIViews应该对某些UIButton(自定义模式)的“内部触摸”事件做出反应。

我给所有UIButton一个标签(比方说1005到1010),所有UIViews都与他们应该响应的UIButton标签相同。

然后我将UIViews与Interface Builder中的集合连接起来。所有UIButton修饰事件都转到我控制器中的相同功能。此函数获取发送方对象的标记,遍历NSArray列表(“IBOutletCollection(UIView)”)并比较标记。每次碰到它,都会采取适当的行动。

很遗憾,NSArrays似乎没有掌握秩序......

相关问题