【问题标题】:Loop through labels iPhone SDK循环遍历标签 iPhone SDK
【发布时间】:2009-08-10 04:20:16
【问题描述】:

好的,我有 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

任何帮助将不胜感激。

【问题讨论】:

    标签: iphone sdk loops label


    【解决方案1】:

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

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

    【讨论】:

      【解决方案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];
      

      【讨论】:

        【解决方案3】:
         for (UILabel *lbl in self.view.subviews) 
            {     
                [lbl setFont:[UIFont fontWithName:@"AppleGothic" size:22]];
            } 
        

        它会改变你的 ViewController 中的所有标签,只需给标签添加标签。

        【讨论】:

        • 一个很好的答案,一个解释你为什么/如何做某事的答案会更好。请在您的答案中提供其他信息,而不仅仅是源代码。
        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2018-10-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多