objective-c - SDWebImage加载的网络图片,如何调整显示图片的尺寸

 無名--小貞貞貞貞貞貞貞貞_微博_ 发布于 2022-10-26 17:56

如图:这是一张6s的手机屏幕截图。我把他放在了一个宽度=手机屏幕宽度,高度为210的UIImageView中。这张图片是通过网络加载获取的。这里我用的是SDWebImage。我现在希望图片能显示得好看些,我的想法是裁剪这张图片。问题是这里的网络请求是异步的。我不知道在什么地方处理它。

我的核心问题是不知道基于SDWebImage加载的网络图片加载完成后在哪里裁剪它。

我想让上线的图片呈现下面的显示方式:关于裁剪部分的代码我已经有了。我只是不知道在哪里修改它。

1 个回答
  • 使用下载选项 SDWebImageAvoidAutoSetImage, 下载完成后在后台剪裁,然后在主线程设置image并调用刷新。
    可以给 UIImageView 写个类别方便调用。

    UIImageView *imageView;
    
        __weak __typeof(&*imageView) weakImageView = imageView;
        [imageView sd_setImageWithURL:url
                     placeholderImage:placeholder
                              options:SDWebImageAvoidAutoSetImage // 下载完成后不要自动设置image
                            completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
                image = [image croppedImage:...]; // 后台线程剪裁图片
    
                dispatch_async(dispatch_get_main_queue(), ^{
                    __typeof(&*weakImageView) strongImageView = weakImageView;
                    if (strongImageView) {
                        strongImageView.image = image;
                        [strongImageView setNeedsLayout];
                    }
                });
            });
        }];
    2022-10-27 01:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有