Iphone 如何在I';我已将其添加到视图中

Iphone 如何在I';我已将其添加到视图中,iphone,objective-c,Iphone,Objective C,我有一个程序,我正在制作一个网格的瓷砖(都是UILabel),我需要能够在我的代码中动态更改UILabel的文本,我的程序目前是如何工作的,它只是不断地在上面创建新的UILabels,所以每次我在这个平铺贴图上移动时,它都会在旧贴图上重新打印一个新的贴图,而不是更改原始贴图 mapLabels[w][h] = [[UILabel alloc] initWithFrame:CGRectMake(cursor.x, cursor.y, tileSize, tileSize)]; mapLabels

我有一个程序,我正在制作一个网格的瓷砖(都是UILabel),我需要能够在我的代码中动态更改UILabel的文本,我的程序目前是如何工作的,它只是不断地在上面创建新的UILabels,所以每次我在这个平铺贴图上移动时,它都会在旧贴图上重新打印一个新的贴图,而不是更改原始贴图

mapLabels[w][h] = [[UILabel alloc] initWithFrame:CGRectMake(cursor.x, cursor.y, tileSize, tileSize)];

mapLabels[w][h].text = [NSString stringWithFormat:@"%d", map[w][h]];

mapLabels[w][h].backgroundColor = [self FindTileColor:map[w][h]];

mapLabels[w][h].textAlignment = UITextAlignmentCenter;

[self.view addSubview:mapLabels[w][h]];

我在for循环中设置了所有标签及其位置,有人能告诉我如何更改标签吗

mapLabels[w][h].tag = whatevertag
然后,当你想访问一个你可以做

[self.view viewWithTag:whatevertag]
标记将是一个int,您可以在每次添加新标签时增加该int


或者,为什么不能只使用已有的数组?

您可以访问使用添加子视图添加的视图 通过使用
self.view.subviews
属性,该属性是您添加的视图数组。 你可以试试:

UILabel * labelref = [self.subviews objectAtIndex:1];
labelref.text = @"mytext";

与创建新标签和设置字段的方式相同,只需引用要更改的标签,并更改所需的字段/属性/等。除非您以当前无法实现的方式构建程序?Did
mapLabels[w][h].text=@“新文本”不起作用?我不确定c风格的数组是否与之有关,但我已经用常规的NSArray做了这项工作,而且效果很好。也许您可以切换到NSArray,看看它是否有效?另外,您是如何定义数组的?UILabel*mapplabels[kMapSize][kMapSize];我正在使用我已经拥有的数组,但每当我尝试更改它时,它都不会做任何事情,例如,如果我要写。。。mapLabel[w][h].text=blahblah在我将其添加到视图中后,它不会做任何事情。你说它是因为我将UILabel放在一个经典的C数组中,而不是NSARRAY数组中。我只是想尝试另一种访问视图的方式:如果你在屏幕上看到它们,那么你可以使用视图层次结构访问它们。