SDWebImage加载UIButton图片尺寸不对的问题
SDWebImage可以设置UIButton的Image,方法是
[menuButton sd_setImageWithURL:[NSURL URLWithString:imageURL] forState:UIControlStateNormal];
【SDWebImage加载UIButton图片尺寸不对的问题】但是,如果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
推荐阅读
- 使用composer自动加载类文件
- 众泰T500智能互联双加载,让汽车生活更有趣
- ImageLoaders 加载图像
- 类的加载过程
- 使用交叉点观察器延迟加载图像以提高性能
- 03_ARMv8指令集介绍加载与存储指令
- Glide|Glide 加载https的图片
- 反射
- Sping中bean的延迟加载
- UIbutton防止重复点击