1

私のアプリには、セルにタイトル、サブタイトル、画像、開示インジケーターが含まれるテーブルがあります。すべてがかなり標準的なので、ジェネリックUITableViewCell initWithStyle:UITableViewCellStyleSubtitleがそのトリックを行います。画像が非常に小さいことを除いて、非常に小さいため、ほとんど使用できません。(写真のサムネイルを表示するためにこれらを使用していますが、写真が何であるかさえわかりません!)

より大きなサイズを実装- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPathして設定しようとしましたが、これにより実際にセルが高くなります。ただし、画像のサイズには影響しません。

標準をUITableViewCellより高く、より大きな画像で作成する方法はありますか、またはのカスタムサブクラスを作成する必要がありUITableViewCellますか?

4

2 に答える 2

2

各セルのサブビューをループして、imageView-cellForRowAtIndexPath:のサイズをリセットできるはずです。

-cellForRowAtIndexPath:

for(UIView* view in cell.subviews) {
    if([view isKindOfClass:[UIImageView class]]) {
        [view setFrame:yourNewBiggerFrame];
    }
}

これを と組み合わせると-heightForRowAtIndexPath:、セルとその画像ビューのサイズを変更できるはずです。

編集:

H2CO3指摘しているように、上記の方法は少し冗長で不要です。imageView単純にセルのプロパティを使用してそのフレームを変更する方が、クリーンで将来性があります。したがって、次のようになります。

[cell.imageView setFrame:yourNewBiggerFrame];

セルのすべてのサブビューをループするよりもはるかにクリーンです!

于 2012-07-17T21:39:03.293 に答える
1
[cell.imageView setFrame:yourFrameHere];

現在、セルのスタイルのため、画像のサイズはセルのサイズに比例していると思います。そのため、セルを大きくするとimageViewが大きくなります。お役に立てれば。

乾杯!

于 2012-07-17T21:41:41.900 に答える