美文网首页iOS自我学习库
SDWebImage加载UIButton图片尺寸不对的问题

SDWebImage加载UIButton图片尺寸不对的问题

作者: CreeveLiu | 来源:发表于2018-12-12 11:35 被阅读79次

    SDWebImage可以设置UIButton的Image,方法是

    [menuButton sd_setImageWithURL:[NSURL URLWithString:imageURL] forState:UIControlStateNormal];
    

    但是,如果imageURL的图像,如果是2x/3x的,我们会发现这样的设置方式,会导致Button的图像尺寸不对。

    image

    实际上,sd_setImageWithURL的方式是默认按照1x来加载图片的。SDWebImage也无法判断你的图像是多少x的。

    我们需要额外做一个处理。

                [menuButton sd_setImageWithURL:[NSURL URLWithString:imageURL] forState:UIControlStateNormal completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
                    UIImage *refined = [UIImage imageWithCGImage:image.CGImage scale:scale orientation:image.imageOrientation];
                    [menuButton setImage:refined forState:UIControlStateNormal];
                }];
    

    这里scale需要和提供图片的人员商定(一般是3,这样不同设备上效果最好),如果是3x的话,就填3.0。

    这样出来的效果就是:


    image.png

    相关文章

      网友评论

        本文标题:SDWebImage加载UIButton图片尺寸不对的问题

        本文链接:https://www.haomeiwen.com/subject/lsyuhqtx.html