1

したがって、UITableViewCellサブクラスではこれはうまく機能します:

- (void)awakeFromNib {
    [super awakeFromNib];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"table-highlight.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]];
    imageView.contentMode = UIViewContentModeScaleToFill;
    self.selectedBackgroundView = imageView;
}

ただし、サブクラス化されていない標準のテーブル セルのみを使用する tableView があります。運のない他の回答で見つかったように、私はこれのあらゆる種類の組み合わせを試しました:

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"table-highlight.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]];
    imageView.contentMode = UIViewContentModeScaleToFill;
    cell.selectedBackgroundView = imageView;
}
4

1 に答える 1

1

くそ。これを投稿してから30秒後に1つのことを考えました。それが他の誰かを助ける場合に備えてそれを残しておきます。imageViewにフレームがありませんでした。作業コード:

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"table-highlight.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]];
    imageView.frame = cell.frame;
    imageView.contentMode = UIViewContentModeScaleToFill;
    cell.selectedBackgroundView = imageView;
}
于 2012-05-02T23:07:29.430 に答える