我试图从我的PHCachingImageManager
获取缩略图,以便我可以将它们放入imageView
中的内置UITableViewCell
。
NSLog(@"thumbnail size: %@", NSStringFromCGSize(AssetGridThumbnailSize));
[self.imageManager
requestImageForAsset:asset
targetSize:AssetGridThumbnailSize
contentMode:PHImageContentModeAspectFill
options:nil
resultHandler:^(UIImage *result, NSDictionary *info) {
NSLog(@"image size: %@", NSStringFromCGSize(result.size));
// Only update the thumbnail if the cell tag hasn't changed. Otherwise, the cell has been re-used.
if (cell.tag == currentTag) {
cell.imageView.contentMode = UIViewContentModeScaleAspectFill;
cell.imageView.image = result;
}
}];
我可以从日志中看到AssetGridThumbnailSize = 80 x 80(40 x 40 retina):
缩略图尺寸:{80,80}
并且我已将contentMode设置为PHImageContentModeAspectFill
,但当我将图片恢复后,它们的大小各不相同,这使得UITableView
看起来非常混乱。
如何让PHCachingImageManager
给我一张尺寸合适的图片?
答案 0 :(得分:1)
在发布问题时,我想出了答案,所以我决定继续发帖,希望这会有助于其他人。
targetSize
只是一个建议。为了真正控制返回图像的大小,您必须使用PHImageRequestOptions
传入resizeMode = PHImageRequestOptionsResizeModeExact
对象。
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
options.resizeMode = PHImageRequestOptionsResizeModeExact;
[self.imageManager requestImageForAsset:asset
targetSize:AssetGridThumbnailSize
contentMode:PHImageContentModeAspectFill
options:options
resultHandler:^(UIImage *result, NSDictionary *info) {