这可能是一个愚蠢的问题,但我对 iPhone 开发并不是很有经验。
假设我有 5 个标签,l1、l2 等。我希望能够独立更改 l1 的字体大小或 l2 的颜色,这很容易。但我也希望能够将它们视为一个组,可以说一次隐藏所有它们,而不必经过 [l1 setHidden:true]、[l2 setHidden:true] 等。
有没有办法将这些项目“分组”在一起,可能是在 for 循环或数组中,或者是我不知道的东西?
感谢您的时间。
这可能是一个愚蠢的问题,但我对 iPhone 开发并不是很有经验。
假设我有 5 个标签,l1、l2 等。我希望能够独立更改 l1 的字体大小或 l2 的颜色,这很容易。但我也希望能够将它们视为一个组,可以说一次隐藏所有它们,而不必经过 [l1 setHidden:true]、[l2 setHidden:true] 等。
有没有办法将这些项目“分组”在一起,可能是在 for 循环或数组中,或者是我不知道的东西?
感谢您的时间。
正如丹尼尔所说,您可以使用 NSArray 来执行此操作。
示例(未经测试,只是从我的想法 - 应该工作):
// Somewhere in your init method - assuming you have three labels
NSArray *labelArray = [[NSArray alloc] initWithObjects: l1, l2, l3, nil];
// Somewhere in your code
- (void) hideAllLabels
{
for (UILabel *label in labelArray)
{
[label setHidden:TRUE];
}
}
最简洁的方法是使用 IBOutletCollection。这是一个类似于插座的新链接,只有当您将视图添加到插座集合时,系统才会设置这些对象的数组,并且当您将项目添加到集合时,它们会自动添加到数组中。这很酷。
还有另一种方式,它们已经被分组。如果您为其中的项目调用超级视图,它会返回这些项目的数组。如果您需要确定该列表中的特定项目,您可以调用该类,或者您可以分配一个标签并在您的迭代中检测它。
NSArray *itemArray = [myView subviews];
for (UIView *thing in itemArray) {
if (thing.tag == 100) {
[thing setBackgroundColor: [UIColor clearColor]];
}
}