UIImageView不替换另一个视图

时间:2012-07-14 22:31:38

标签: iphone objective-c ios uiview uiimageview

我有这段代码来创建我原来的UIView:

itemView = [[UIView alloc] initWithFrame:CGRectMake(self.frame.size.width - CELL_HEIGHT - 10, 0, CELL_HEIGHT, CELL_HEIGHT)];
itemView.backgroundColor = [UIColor redColor];
[self addSubview:itemView];

然后我会在以后使用此代码:

UIImageView *accessory = [[UIImageView alloc] initWithFrame:cell.itemView.frame];
accessory.contentMode = UIViewContentModeCenter;
accessory.image = [UIImage imageNamed:@"icon_settings_fwd.png"];

itemView = accessory;

但我所看到的只是红色。它没有用UIImage取而代之。有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

itemView只是指向具有红色背景颜色的UIView实例的指针。当您将此作为子视图添加到另一个视图时,超级视图将保留新添加的子视图,因此从现在开始,维护其自己的指针副本。它并不知道你重复使用原始指针的任何事情。您必须先删除第一个子视图(具有红色背景颜色的子视图),然后将第二个视图添加为子视图。

相关问题