2010-11-24 22 views
0

私は、インターネットから、いくつかの異なる場所から、不明な、異なる次元の画像を多数ダウンロードしています。カスタム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、表の行のサイズを変更することです?そしておそらく私自身のスケーリング機能を作成?

答えて

0

はTableViewCellが、それはビューのカスタムが判明UIImageViewはすべてわずかに異なる高さであり、結果が乱れていました。

0

Xcodeで、私はlayoutSubviews方法を見ることに興味がある場合は?IBにおける、またはXcodeでのUITableViewCellを作成しました。

+0

IBでは、カスタムUITableViewCellクラスを使用し、UIViewとUIImageViewをビュー内で使用します。 – daidai

+1

IBのレイアウト部分でスプリングとストラットを見たい場合は、後でtableView行の高さを変更すると予期しない変更が発生する可能性があるため、それらを設定していることを確認してください。 – MCannon

関連する問題