在IB与相关文件做连接时,我们经常会用到两个关键字:IBOutlet和IBAction。经常用xib或storyboard的童鞋应该用这两上关键字非常熟悉了。不过UIKit还提供了另一个伪关键字IBOutletCollection,我们使用这个关键字,可以将界面上一组相同的控件连接到同一个数组中。
我们先来看看这个伪关键字的定义,可以从UIKit.framework的头文件UINibDeclarations.h找到如下定义:
#ifndef IBOutletCollection
#define IBOutletCollection(ClassName)
#endif
从上面的定义可以看到,与IBOutlet不同的是,IBOutletCollection带有一个参数,该参数是一个类名。
通常情况下,我们使用一个IBOutletCollection属性时,属性必须是strong的,且类型是NSArray,如下所示:
@property (strong, nonatomic) IBOutletCollection(UIScrollView) NSArray *scrollViews;
那么,应该如何创建IBOutletCollection呢?首先确保是一组相同的控件,以UIButton
为例,首先将界面上的一个UIButton拖到代码文件中,不过选择的是outlet collection
,如图:
接下来把其他的UIButton拖到该UIButton的代码区即可。