我想为iOS应用程序提供三组10个按钮。我想显示/隐藏每一组(一次显示一组)。我打算用标签来做这件事。
因为它是每个按钮都有一个属性(例如:btn01,btn02等),所以我有30个属性。我将它添加到一个数组,然后使用以下代码隐藏一个标签或另一个标签的按钮。
我的问题是,是否有更有效的方法来创建对象数组,而不是设置30个属性(每个按钮一个)。这很好,只是想知道是否有更简洁的方法,使用循环以某种方式从IB收集每个按钮。想不到它。
if (tagState == 1) {
tagState = 2;
}else {
tagState = 1;
}
for (btn in myArray) {
NSLog(@"%@",btn);
if (tagState == 1) {
if (btn.tag == 1) {
[btn setHidden:YES];
}
if (btn.tag == 2) {
[btn setHidden:NO];
}
} else if (tagState == 2) {
if (btn.tag == 1) {
[btn setHidden:NO];
}
if (btn.tag == 2) {
[btn setHidden:YES];
}
}
}
}
答案 0 :(得分:1)
我认为您可以非常有效地使用视图层次结构:将每组按钮放入其自己的UIView
,仅将三个UIView
连接到出口,并隐藏/显示它们。请注意,这仅在您不需要出于某些其他原因访问各个按钮时才有效。
答案 1 :(得分:1)
您可以使用IBOutletCollection
,它是NSArray
个商店。
例如隐藏集合中的所有商店,您可以使用
[outlets setValue:@YES forKey:@"hidden"]
或
[outlets setValue:[NSNumber numberWithBool:YES] forKey:@"hidden"]
使用LLVM时< 4.0