从IB,XCode中的多个按钮创建对象数组

时间:2012-07-12 04:59:46

标签: objective-c ios xcode arrays

我想为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];
            }

        }    
    }
}

2 个答案:

答案 0 :(得分:1)

我认为您可以非常有效地使用视图层次结构:将每组按钮放入其自己的UIView,仅将三个UIView连接到出口,并隐藏/显示它们。请注意,这仅在您不需要出于某些其他原因访问各个按钮时才有效。

答案 1 :(得分:1)

您可以使用IBOutletCollection,它是NSArray个商店。

例如隐藏集合中的所有商店,您可以使用

[outlets setValue:@YES forKey:@"hidden"]

[outlets setValue:[NSNumber numberWithBool:YES] forKey:@"hidden"]

使用LLVM时< 4.0

相关问题