2

UITableViewCell サブクラスの背景として UIImageView を取得しました。イメージ フィールドにイメージを配置し、ハイライト フィールドにそのイメージの明るいバージョンを配置しました。UITableViewCell サブクラスで、その ImageView をハイライト表示に設定するコードを追加しましたが、何も変わりません...

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    // Configure the view for the selected state
    self.backgroundImageView.highlighted = selected;
    NSLog(@"selected: %d", selected);
}

self.backgroundImageView が IBOutlet として正しく接続されていることを確認しました。

4

1 に答える 1

0

次のように UIImageView を初期化するだけです。

[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"gray_arrow"] highlightedImage:[UIImage imageNamed:@"white_arrow"]];

強調表示したままにする必要がある場合は、テーブルビューの didSelectRowAtIndexPath メソッドで、UIImageView を表すサブビューを取得して強調表示します。このようなもの:

UIImageView* imageView = [[[dataSource objectAtIndex:[indexPath row]] subviews] objectAtIndex:2]
[imageView setHighlighted:YES];

他のセルの UIImageView を次のように設定します。

 [imageView setHighlighted:NO];
于 2013-07-01T13:56:00.180 に答える