我从周一到周日有7个开关,需要将所有7个开关连接到我的控制器。将它们分开连接感觉真的很尴尬:
@property (strong, nonatomic)IBOutlet UISwitch *switch1;
@property (strong, nonatomic)IBOutlet UISwitch *switch2;
@property (strong, nonatomic)IBOutlet UISwitch *switch3;
...
@property (strong, nonatomic)IBOutlet UISwitch *switch7;
// It gets worse when you have even more switches
相反,是否可以有一个NSArray *switchArr
来容纳7个开关,我们将开关1连接到switchArr [1],将开关2连接到switchArr [2],依此类推?
答案 0 :(得分:2)
右键单击IB中的单个开关,然后从“New Referencing Outlet Collection”拖动到.h文件以创建新的插座集合。你应该看到一个属性
@property (strong, nonatomic) IBOutletCollection(UISwitch) NSArray *switches;
创建。重复拖动每个其他开关到该属性。
答案 1 :(得分:1)
按照您希望交换机在数组中的顺序为每个交换机设置标记,您可以从10开始标记以避免与其他视图冲突,然后在viewDidLoad中将视图存储到可变数组中,像这样:
NSMutableArray *switches = [[NSMutableArray alloc] init];
NSInteger initialTag = 10; //set your initial tag
for(NSInteger i = initialTag; i < initialTag + 7; i++) {
[switches addObject:[self.view viewWithTag:i]];
}
答案 2 :(得分:0)
你可以做这样的事情
@property (strong, nonatomic)IBOutletCollection(UISwitch) NSArray * switches;