使用for循环在不同坐标中添加标签

时间:2013-12-13 00:00:35

标签: objective-c nsarray uilabel

我不想在带有for循环的按钮上添加标签(数组中的字符串)。

我是objective-c的新手,我不知道如何在每次迭代中将所有更改都放入循环中。 如果有更好的方法,请告诉我。现在我得到了这个,它只打印出右上角阵列中的第二个元素。

for (int i=0; i< sizeof(arrayOfLetters);  i++ ) {
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(441,11,30,20)];
    label.text = [NSString stringWithFormat:@"%@",[arrayOfLetters objectAtIndex:1]];
    [self.view addSubview:label];
}

1 个答案:

答案 0 :(得分:3)

你很亲密。你想要:

for (int i = 0; i < arrayOfLetters.count; i++) {
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(441, 11 + i * 25, 30, 20)];
    label.text = arrayOfLetters[i];
    [self.view addSubview:label];
}

您还应该像我在这里一样给每个标签一个不同的框架。根据需要进行调整。

请记住,sizeof函数会为您提供变量的大小。由于arrayOfLetters是一个对象指针,结果可能是4.您需要数组的实际计数。请参阅NSArray的文档。

另外,不要不必要地使用stringWithFormat:。只有当你实际拥有需要格式化的字符串时才使用它。