iOS14下GKPhotoBrowser和SDAnimatedImageView本地图片无法加载

以下所有内容均为个人观点,转载请注明出处<简书--小蜗牛吱呀之悠悠 >,谢谢!

苹果正式发布iOS 14系统后,原先可以显示大图模式的GKPhotoBrowser出现了黑屏,但是在iOS 13系统却是正常的。

GKPhotoBrowser的代码配置如下:

for (int i = 0;i < self.assets.count;i++) {
        GKPhoto *photo = [GKPhoto new];
        photo.sourceFrame = CGRectMake(WIDTH_SCREEN/2, HEIGHT_SCREEN/2, 1, 1);
        [photos addObject:photo];
    }
    DDPHAsset *asset = self.assets[indexPath.row];
    [self.queue addOperationWithBlock:^{
        [[PHImageManager defaultManager] requestImageForAsset:asset.asset targetSize: PHImageManagerMaximumSize contentMode:PHImageContentModeAspectFit options:self.options resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
            [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                GKPhoto *photo = photos[indexPath.row];
                photo.image = result;
                GKPhotoBrowser *browser = [GKPhotoBrowser photoBrowserWithPhotos:photos currentIndex:indexPath.row];
                browser.showStyle           = GKPhotoBrowserShowStyleZoom;
                browser.hideStyle           = GKPhotoBrowserHideStyleZoomScale;
                browser.isResumePhotoZoom   = YES;
                browser.delegate = self;
                [browser showFromVC:self];
            }];
        }];
    }];

我们查看GKPhotoBrowser的图片加载方法:

- (void)loadImageWithPhoto:(GKPhoto *)photo isOrigin:(BOOL)isOrigin

发现,GKPhotoBrowser内部在加载图片的时候,会创建一个imageView,而这个imageView通过动态创建类型的,此时的类型正好是SDAnimatedImageView,于是继续查看SDAnimatedImageView.m文件发现下面方法:

- (void)displayLayer:(CALayer *)layer

在此方法中增加调用父类即可

[super displayLayer:layer];
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容