Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios viewWithTag仅更新集合中的最后一个标记_Ios_Objective C_View_Tags_Uilabel - Fatal编程技术网

Ios viewWithTag仅更新集合中的最后一个标记

Ios viewWithTag仅更新集合中的最后一个标记,ios,objective-c,view,tags,uilabel,Ios,Objective C,View,Tags,Uilabel,我试图创建一系列带有标签的标签,然后更新文本。但是,只有最后一个标签才会更新。如何更新所有标签或特定标签 此示例应制作4个标签,其中包含数字1、2、3、4。然后,is应使用A、B、C、D覆盖它们。仅覆盖第4个标签 想法 int x = 10, y=10, w = 80, h = 30; for(int i=1; i<= 4 ; i++) { CGRect frame = CGRectMake(x, y, w, h ) ; myLab = [[UILabel alloc]

我试图创建一系列带有标签的标签,然后更新文本。但是,只有最后一个标签才会更新。如何更新所有标签或特定标签

此示例应制作4个标签,其中包含数字1、2、3、4。然后,is应使用A、B、C、D覆盖它们。仅覆盖第4个标签

想法

int x = 10, y=10, w = 80, h = 30;
for(int i=1; i<= 4  ; i++)
{
    CGRect frame = CGRectMake(x, y, w, h ) ;
    myLab = [[UILabel alloc] initWithFrame:frame];
    [myLab setTag:i] ;
    [myLab setBackgroundColor:[UIColor whiteColor]] ;
    [myLab setText:[NSString stringWithFormat:@"%d",i]];
    [self.view addSubview:myLab];
    x += 158;
}


for (int i = 1; i <=4; i++){
    UILabel *textField = (UILabel*)[myLab viewWithTag:i];
    [textField setText:[NSString stringWithFormat:@"%c",i+64]];
}
intx=10,y=10,w=80,h=30;

对于(int i=1;i请查看UIView的类引用,以获得有关viewWithTag方法的更多说明:

此处提到,此viewWithTag方法将搜索当前视图及其所有子视图以查找指定的视图。在当前实现中,指定的视图是myLab(分配给for循环后的最后一个(第四个)UILabel),而不是包含所有标签的self.view

将标签的外观更改为
[self.view view withtag:i]
以在self.view下搜索带有特定标签的标签,因为您正在将所有这些标签添加到self.view子视图中

for (int i = 1; i <=4; i++){
    UILabel *textField = (UILabel*)[self.view viewWithTag:i];
    [textField setText:[NSString stringWithFormat:@"%c",i+64]];
}
for(int i=1;i