我有这段代码来创建我原来的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取而代之。有谁知道为什么?
答案 0 :(得分:0)
itemView只是指向具有红色背景颜色的UIView实例的指针。当您将此作为子视图添加到另一个视图时,超级视图将保留新添加的子视图,因此从现在开始,维护其自己的指针副本。它并不知道你重复使用原始指针的任何事情。您必须先删除第一个子视图(具有红色背景颜色的子视图),然后将第二个视图添加为子视图。