私のカスタムtableViewCellには、セル全体を埋めるimageView(tableViewCellのデフォルトのimageViewではない)があります。contentMode を使用して IB で (およびコードで) 設定され、UIViewContentModeAspectFill
境界にクリップされます。imageView のイメージを でロードされたイメージに変更するたびに、必要に応じて imageView のサイズが変更さ[UIImage imageNamed:...]
れ、フィットします。ただし、イメージ セットを でロードすると[UIImage imageWithData:...]
、イメージは設定されますが、サイズは変更されません。
イメージ自体をデータとともにロードするコードは、バックグラウンド スレッドで実行され、次のようになります。
- (void)getImage:(NSString *)URL {
NSError *error = nil;
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:URL] options:NSDataReadingMapped error:&error]];
if (!error){
[self.thumbView setImage:image];
[self.thumbView setContentMode:UIViewContentModeScaleAspectFill];
}
}
のメインスレッドで画像を設定しようとしましたlayoutSubviews
が、常に同じ結果が得られます.imageViewを埋めるためにサイズが変更されません. 画像 (JPG) をアプリ バンドルに追加し、プログラムで を使用して設定しましたが[UIImage imageNamed:...]
、これは機能しますが、アプリは URL からデータを取得する必要があります。
また、UIImageView+AFNetworking-class を使用して、独自のスレッドを作成する代わりに画像を非同期に設定しようとしましたが、それも機能しません。
データから読み込まれたときに、画像が UIImageView の contentMode を尊重しないのはなぜですか? どんな助けでも大歓迎です。JPEG も PNG も機能しません。