好的我有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
任何帮助都将不胜感激。
答案 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];
}