循环标签iPhone SDK

时间:2009-08-10 04:20:16

标签: iphone sdk loops label

好的我有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 个答案:

答案 0 :(得分:3)

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

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

的文档

答案 1 :(得分:2)

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

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

(不完全确定语法) 然后像

一样访问它们
labels[i].text = ...

顺便说一句,我认为你在这里泄漏了记忆:

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

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

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

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

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

答案 2 :(得分:1)

 for (UILabel *lbl in self.view.subviews) 
    {     
        [lbl setFont:[UIFont fontWithName:@"AppleGothic" size:22]];
    } 

只需为标签添加标签即可更改ViewController中的所有标签。

答案 3 :(得分:0)

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

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

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];
}