1

这可能是一个愚蠢的问题,但我对 iPhone 开发并不是很有经验。

假设我有 5 个标签,l1、l2 等。我希望能够独立更改 l1 的字体大小或 l2 的颜色,这很容易。但我也希望能够将它们视为一个组,可以说一次隐藏所有它们,而不必经过 [l1 setHidden:true]、[l2 setHidden:true] 等。

有没有办法将这些项目“分组”在一起,可能是在 for 循环或数组中,或者是我不知道的东西?

感谢您的时间。

4

3 回答 3

3

正如丹尼尔所说,您可以使用 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];
  }
}
于 2012-06-16T14:28:16.963 回答
1

最简洁的方法是使用 IBOutletCollection。这是一个类似于插座的新链接,只有当您将视图添加到插座集合时,系统才会设置这些对象的数组,并且当您将项目添加到集合时,它们会自动添加到数组中。这很酷。

于 2012-06-17T01:32:30.030 回答
0

还有另一种方式,它们已经被分组。如果您为其中的项目调用超级视图,它会返回这些项目的数组。如果您需要确定该列表中的特定项目,您可以调用该类,或者您可以分配一个标签并在您的迭代中检测它。

NSArray *itemArray = [myView subviews];
for (UIView *thing in itemArray) {
  if (thing.tag == 100) {
    [thing setBackgroundColor: [UIColor clearColor]];
  }
}
于 2012-06-16T16:59:13.283 回答