2011-11-24 142 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