0

我正在尝试从我的缩略图中获取缩略图,PHCachingImageManager以便我可以将它们放入imageViewUITableViewCell的 s.

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 视网膜):

缩略图大小:{80, 80}

我已经将 contentMode 设置为,PHImageContentModeAspectFill但是当我取回图像时,它们都是不同的大小,这使得UITableView看起来非常混乱。

如何PHCachingImageManager让我返回正确尺寸的图像?

4

1 回答 1

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) {
于 2015-09-23T02:16:46.860 回答