私は、インターネットから、いくつかの異なる場所から、不明な、異なる次元の画像を多数ダウンロードしています。カスタムUITableViewCellで異なるUIImageサイズ
UIImageView(cellImageView
の幅320、高さ100)を内部に持つ作成したカスタムUITableViewCellにダウンロードしたときに、それらをうまく読み込めるようになりました。
私は表のセルを設定し、そのように行の高さをリサイズしています:
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath
{
ImageDownloader *download = [imagesModel.downloads objectAtIndex:[indexPath row]];
if (download.image)
{
CGFloat scaleFactor = 320.0f/download.image.size.width;
CGFloat heightScaled = (scaleFactor * download.image.size.height);
return heightScaled;
}
return 100.0f;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
ImageTableCell *cell = (ImageTableCell *)[tableView dequeueReusableCellWithIdentifier:[ImageTableCell reuseIdentifier]];
if (cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"ImageTableCell" owner:self options:nil];
cell = loadCell;
self.loadCell = nil;
}
ImageDownloader *download = [imagesModel.downloads objectAtIndex:[indexPath row]];
if (download.image == nil)
{
download.delegate = self;
}
cell.cellImageView.image = download.image;
return cell;
}
問題は、私は、細胞が正常に表示するために得ることができないです。私はUIImageViewのcontentModeで遊んだことがありますが、AspectFillは正常に動作していますが、クリッピングやマスキングの原因となるすべてのものがプッシュされ、画像が崩れることがあります。トップを使用すると、垂直方向の問題を解決しますがTableViewCellは、画像が時々大きすぎる(画像に適合していません。
が解決されるカスタムTableViewCell、UIImage と UIImage、表の行のサイズを変更することです?そしておそらく私自身のスケーリング機能を作成?
IBでは、カスタムUITableViewCellクラスを使用し、UIViewとUIImageViewをビュー内で使用します。 – daidai
IBのレイアウト部分でスプリングとストラットを見たい場合は、後でtableView行の高さを変更すると予期しない変更が発生する可能性があるため、それらを設定していることを確認してください。 – MCannon