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 インスタンスへのポインタです。これをサブビューとして別のビューに追加すると、スーパービューは新しく追加されたサブビューを保持するため、今後はそのポインターの独自のコピーを維持します。元のポインターを再利用することについては何も知りません。最初のサブビュー (背景色が赤のサブビュー) を最初に削除してから、2 番目のビューをサブビューとして追加する必要があります。

于 2012-07-14T22:36:53.303 に答える