0

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

        }    
    }
}
4

2 回答 2

1

你可以使用IBOutletCollection,它是一个NSArray网点。

例如,要隐藏集合中的所有出口,您可以使用

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

或者

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

使用 LLVM < 4.0 时

于 2012-07-12T16:10:45.673 回答
1

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

于 2012-07-12T05:22:34.440 回答