从 PHCachingImageManager 获取固定大小的图像
Getting fixed size Image from PHCachingImageManager
我正在尝试从我的 PHCachingImageManager
中获取缩略图,以便我可以将它们放入我的 UITableViewCell
中的内置 imageView
。
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 视网膜):
thumbnail size: {80, 80}
并且我已将 contentMode 设置为 PHImageContentModeAspectFill
,但是当我取回图像时,它们的尺寸各不相同,这使得 UITableView
看起来非常混乱。
如何让 PHCachingImageManager
返回合适尺寸的图片?
在发布问题时,我找到了答案,所以我决定继续发布,希望这对其他人有所帮助。
targetSize
只是一个建议。为了真正控制返回图像的大小,您必须使用 resizeMode = PHImageRequestOptionsResizeModeExact
.
传入 PHImageRequestOptions
对象
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
options.resizeMode = PHImageRequestOptionsResizeModeExact;
[self.imageManager requestImageForAsset:asset
targetSize:AssetGridThumbnailSize
contentMode:PHImageContentModeAspectFill
options:options
resultHandler:^(UIImage *result, NSDictionary *info) {
我正在尝试从我的 PHCachingImageManager
中获取缩略图,以便我可以将它们放入我的 UITableViewCell
中的内置 imageView
。
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 视网膜):
thumbnail size: {80, 80}
并且我已将 contentMode 设置为 PHImageContentModeAspectFill
,但是当我取回图像时,它们的尺寸各不相同,这使得 UITableView
看起来非常混乱。
如何让 PHCachingImageManager
返回合适尺寸的图片?
在发布问题时,我找到了答案,所以我决定继续发布,希望这对其他人有所帮助。
targetSize
只是一个建议。为了真正控制返回图像的大小,您必须使用 resizeMode = PHImageRequestOptionsResizeModeExact
.
PHImageRequestOptions
对象
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
options.resizeMode = PHImageRequestOptionsResizeModeExact;
[self.imageManager requestImageForAsset:asset
targetSize:AssetGridThumbnailSize
contentMode:PHImageContentModeAspectFill
options:options
resultHandler:^(UIImage *result, NSDictionary *info) {