1

我有一个程序,我正在制作一个瓷砖网格(都是 UILabel),我需要能够在我的代码中动态更改 UILabel 的文本,我的程序当前的功能是它只是不断创建新的 UILabel所以每次我在这个瓷砖地图上移动时,它都会在旧地图上重新打印一张新地图,而不是改变原来的地图。

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循环中设置了所有标签及其位置,例如^ this,有人可以告诉我如何更改标签

4

2 回答 2

0

你应该给每个标签一个标签

mapLabels[w][h].tag = whatevertag

然后当你想访问一个你可以做

[self.view viewWithTag:whatevertag]

该标签将是一个 int,您可以在每次添加新标签时递增。

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

于 2012-07-24T20:10:56.330 回答
0

您可以addSubview 使用self.view.subviews属性访问您添加的视图,该属性是您添加的视图的 NSArray。你可以试试:

UILabel * labelref = [self.subviews objectAtIndex:1];
labelref.text = @"mytext";
于 2012-07-24T20:45:33.810 回答