2011-11-24 95 views
1

我有一個以矩陣命名的對象(UILabel)的集合。索引對象矩陣(UILabel)

例:

A11 A12 A13 A14 ... 
A21 A22 A23 A24 ... 
A31 A32 A33 A34 ... 
... ... ... ... 

我當時就想,用簡單的for循環設置文本:

for (int i=1; i==5; i++) { 
    for (int y=1; y==5; y++) { 
     //code 
    } 
} 

有一種方法可以做到這一點的呀?事情是這樣的......

Aiy.text = [[NSString alloc] initWithFormat: @"A%d%d", i, y]; 

編輯: 也許是我沒有解釋清楚我的問題,我很抱歉......

我願做這樣的事情(請原諒的代碼-blasphemy!)

A(@"%d",i)(@"%d",y).text = [[NSString alloc] initWithFormat: @"A%d%d", i, y]; 

,並把這些東西在for循環,所以我可以改變所有標籤的文本(標籤A11將有「A11」爲文本)

回答

1

所以,你想給它的屬性名稱來訪問標籤...

裏面你的循環,嘗試:

// Get label's name 
NSString *name = [NSString stringWithFormat:@"A%d%d", i, y]; 

// Get label from class given it's name 
UILabel *label = [self valueForKey:name]; 

// Set the contents 
label.text = name; 
+0

您讓我的一天!實際上,我放棄了這個解決方案,並找到了另一種方式,但我將其保存爲另一個項目!非常感謝*博主* – Oiproks

0

我不確定要理解你的問題。也許迴應是:

for (int i=1; i<=5; i++) { 
    for (int y=1; y<=5; y++) { 
     Aiy.text = [NSString stringWithFormat:@"A%d%d", i, y];; 
    } 
} 

這就是你想要的?

+0

代替AIY,我想放在那裏我的所有對象(A11, A12,...)。我在問是否可以使用變量作爲文件名的一部分...比如'A(@「%d」,i)(@「%d」,y).text = blablabla' – Oiproks

+0

好的。我認爲你不能。但爲什麼你不使用多維數組? – Banov

+0

嗯......我的主要問題是:我有一個9x5的矩陣......我必須在界面生成器中創建45個對象,還是有更好的方法? – Oiproks