0

UITableViewCellStyleSubTitle を使用しています。表のセルにサムネイルを追加しようとしています。UIViewContentModeScaleAspectFit は不明な理由で機能していないようです。同様の種類の質問について、スタック オーバーフローで多くの回答を見てきました。drawInRect を使用して画像をトリミングすると、次のように機能します

[thumbnail drawInRect:thumbnailRect];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();

しかし、私が達成しようとしていることは、私がこれを行う必要はないはずです。私は画像を拡大縮小しようとしているだけで、トリミングはしていません。そのため、デフォルト セルのイメージビューのコンテンツ モードを「UIViewContentModeScaleAspectFit」に設定すると機能するはずですが、機能しません。

cell.imageView.contentMode = UIViewContentModeScaleAspectFit;

サムネイルを設定するための完全なロジック。fPath は画像へのパスです。

UIImage *thumbnail = [UIImage imageWithContentsOfFile:fPath];
[cell.imageView setImage:thumbnail];
cell.imageView.contentMode = UIViewContentModeScaleAspectFit;
cell.imageView.clipsToBounds = YES;
4

1 に答える 1

0

drawInRectは、サイズが小さい場合は元の画像を拡大し、サイズが大きい場合は元の画像をトリミングすることを発見しました。

この記事は、画像のサムネイルを作成するのに役立ちます http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/

これには、いくつかの便利なUIImageクラス拡張機能があります。* UIImage + Resize * UIImage + Alpha * UIImage + RoundedCorner

使用例:

UIImage * imageThumb = [YourImagethumbnailImage:70transparentBorder:0cornerRadius:10interpolationQuality:kCGInterpolationHigh];

次に、drawInRectメソッドを使用できます。画像が長方形でない場合-画像は大きい方の辺をトリミングし、画像の中央を取ります

この答えがあなたを導くことを願っています。

于 2013-02-27T17:42:21.187 に答える