0

我有这个代码来创建我原来的 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 替换它。有人知道为什么吗?

4

1 回答 1

0

itemView 只是一个指向具有红色背景颜色的 UIView 实例的指针。当您将其作为子视图添加到另一个视图时,父视图会保留新添加的子视图,因此从现在开始,维护它自己的指针副本。它对您重用原始指针一无所知。您必须首先删除第一个子视图(具有红色背景颜色的子视图),然后将第二个视图添加为子视图。

于 2012-07-14T22:36:53.303 回答