gpt4 book ai didi

ios - viewWithTag 仅更新集合中的最后一个标签

转载 作者:行者123 更新时间:2023-11-29 03:55:00 25 4
gpt4 key购买 nike

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

此示例应创建 4 个标签,其中包含数字 1、2、3、4。然后应该用 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]];
}

最佳答案

查看 UIView 的类引用以获得有关 viewWithTag 方法的更多说明:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.html

那里提到这个 viewWithTag 方法在当前 View 及其所有 subview 中搜索指定的 View 。在当前的实现中,指定的 View 是 myLab(在 for 循环后分配给最后一个(第 4 个)UILabel),而不是包含所有标签的 self.view。

将标签的外观更改为 [self.view viewWithTag:i] 以在 self.view 下搜索具有特定标签的标签,因为您要将所有这些标签添加到 self.view subview 中。

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

关于ios - viewWithTag 仅更新集合中的最后一个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16619731/

25 4 0