首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环通过labels iPhone SDK

循环通过labels iPhone SDK
EN

Stack Overflow用户
提问于 2009-08-10 04:20:16
回答 4查看 2.5K关注 0票数 0

好吧,我有8个标签,我想循环通过它们,但没有运气。

这就是我尝试过的。

代码语言:javascript
复制
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

任何帮助都将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-10 04:34:07

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

代码语言:javascript
复制
UILabel* labels[] = { label0, label1, label2, ... };

(不完全确定语法),然后访问它们,如下所示

代码语言:javascript
复制
labels[i].text = ...

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

代码语言:javascript
复制
labels[i].text = [[NSString alloc]initWithFormat:@"%2.1f", va];

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

代码语言:javascript
复制
labels[i].text = [[[NSString alloc]initWithFormat:@"%2.1f", va] autorelease];

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

代码语言:javascript
复制
labels[i].text = [NSString stringWithFormat:@"%2.1f", va];
票数 2
EN

Stack Overflow用户

发布于 2009-08-10 04:27:18

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

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

票数 3
EN

Stack Overflow用户

发布于 2013-07-15 17:57:54

代码语言:javascript
复制
 for (UILabel *lbl in self.view.subviews) 
    {     
        [lbl setFont:[UIFont fontWithName:@"AppleGothic" size:22]];
    } 

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1253091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档