2013-12-13 56 views
0

我不想用for循環將標籤(數組中的字符串)添加到按鈕上。用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]; 
} 

回答

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:。只有當你實際上有一個需要格式化的字符串時才使用它。

+0

非常感謝!它像一個魅力一樣工作! :) –