0

好的,我有 8 个标签,我想遍历它们,但没有运气。

这是我尝试过的。

for (int i; i = 0; i < 10; i++)
{
  double va = [varible1.text doubleValue] + i;
  int j = 0 + I 

  label(j).text= [[NSString alloc]initWithFormat:@"%2.1f", va];
}

这出错了。我的标签被命名为这样 label0, label1, label2

任何帮助,将不胜感激。

4

4 回答 4

3

label(j)不等同于 label0、label1 等。

您应该创建一个标签的 NSArray,然后您可以使用[arrayOfLabels objectAtIndex:j]. 如果您不确定这意味着什么,请阅读有关 NSArray 的文档...

于 2009-08-10T04:27:17.757 回答
2

您可能应该将所有标签添加到 C 数组中,可能在 -viewDidLoad 中

UILabel* labels[] = { label0, label1, label2, ... };

(不完全确定语法),然后像访问它们一样

labels[i].text = ...

顺便说一句,我认为您在这里泄漏了内存:

labels[i].text = [[NSString alloc]initWithFormat:@"%2.1f", va];

initWithFormat: 将返回一个保留计数为 1 的字符串。labels[i].text 将再次保留该值。您应该在设置标签的文本后释放字符串。我可能只是在这里自动释放它:

labels[i].text = [[[NSString alloc]initWithFormat:@"%2.1f", va] autorelease];

或使用 stringWithFormat (返回一个自动释放的字符串):

labels[i].text = [NSString stringWithFormat:@"%2.1f", va];
于 2009-08-10T04:34:07.023 回答
1
 for (UILabel *lbl in self.view.subviews) 
    {     
        [lbl setFont:[UIFont fontWithName:@"AppleGothic" size:22]];
    } 

它会通过给标签添加标签来更改 ViewController 中的所有标签。

于 2013-07-15T09:57:54.360 回答
0

如果您不能或不想将标签放入数组中,则可以使用标签字段作为索引遍历 UIView。您将索引号存储在其中(通过 IB 或以编程方式),然后使用 (UIView *)viewWithTag:(NSInteger)tag 获取每个标签。

见下文(将视图设置为标签所在的视图):

for (int i; i = 0; i < 10; i++)
{
  double va = [varible1.text doubleValue] + i;

  UILabel * label = [theView viewWithTag: i];
  label.text= [[NSString alloc]initWithFormat:@"%2.1f", va];
}
于 2009-08-10T07:57:20.640 回答