removeFromSuperview由于某种原因用UIImageView替换对象?
问题描述:
我已经通过我的代码中分配的每一件东西,并给它一个-1的标签,除了使用标签系统的图标。所以这是我的代码:removeFromSuperview由于某种原因用UIImageView替换对象?
NSLog(@" 1: %@", (Icon *)[self viewWithTag:index]);
Icon *icon = (Icon *)[self viewWithTag:index];
CGRect frame = icon.frame;
[icon removeFromSuperview];
icon = nil;
Icon *icon2 = [[Icon alloc] init];
[icon2 makeIconStandardWithTag:(int)index];
icon2.frame = frame;
[self addSubview:icon2];
NSLog(@" 2: %@", (Icon *)[self viewWithTag:index]);
NSLog 1将对象返回为图标。 NSLog 2将对象返回为UIImageView,尽管我为每个UIImageView彻底搜索代码并给它一个-1标签。通过移动NSLog 2,我发现这行[icon removeFromSuperview];
是这里的问题。如果不包括该行,则不会发生。但显然我需要从超级视图中删除它,并且.alpha = 0
是太多的修补修复程序。
答
您为标签使用什么值?如果我使用的值太低,我有时会遇到麻烦(我假设UIKit
正在使用该标记值)。
尝试将index
设置为某个随机大数。
此外,为什么不只是使用实例变量来引用图标?然后,您将不必乱七八糟地根据标签识别图标。
它只发生在索引0上。 – Andrew 2011-05-24 00:21:21
那么这可能是你的问题。不应有任何理由必须使用标记值0.您是否可以尝试使用较大的值。 – CharlieMezak 2011-05-24 00:22:16
我有一堆从数组中加载的对象,并且从0开始。我不想将其更改为arrayindex + 1,然后在用户按下它以找出时再次将其更改回来哪一个打开。 – Andrew 2011-05-24 00:28:52