gpt4 book ai didi

ios - viewWithTag 和 addSubview

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:55 25 4
gpt4 key购买 nike

我试图通过在按下 UIButton 时调用 viewWithTag 来重用标签。代码第一次执行时看起来没问题,但是由于第 7 行多次执行它是否会泄漏?从 superview、alloc 和 addSubview 中删除标签而不是使用 viewWithTag 是否更好?

1. UILabel *label = (UILabel *)[self.view viewWithTag:100];
2. if(label == nil) {
3. label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 20, 20)] autorelease];
4. label.tag = 100;
5. }
6.
7. [self.view addSubview:label];

最佳答案

将代码 [self.view addSubview:label]; 移到您的 if block 中。当您的 if 条件为假时,这意味着该标签已经是您的 View Controller View 层次结构的一部分,因此如果您像在原始代码中一样再次添加它,它将被双重保留。

UILabel *label = (UILabel *)[self.view viewWithTag:100];
if (!label) {
label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 20, 20)] autorelease];
label.tag = 100;
[self.view addSubview:label];
}

关于ios - viewWithTag 和 addSubview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com