我使用SDWebImage来设置这样的图像:
[self.imageView sd_setImageWithURL:topicModel.large_image]
placeholderImage:nil
options:0
progress:^(NSInteger receivedSize, NSInteger expectedSize) {
} completed:^(UIImage *image,
NSError *error,
SDImageCacheType cacheType,
NSURL *imageURL) {
}];
之后,我将imageView的contentMode设置为:
if (topicModel.isBigPicture) {
self.imageView.contentMode = UIViewContentModeTop;
self.imageView.clipsToBounds = YES;
}else {
self.imageView.contentMode = UIViewContentModeScaleAspectFill;
self.imageView.clipsToBounds = NO;
}
imageView的大小为(355,200),
图像的大小大于比imageView,宽度和高度。
众所周知,
如果topicModel是bigPicture,则contentMode将是UIViewContentModeTop。
UIViewContentModeTop保持相同的大小,只是定位调整。
但是我发现了一个问题?
在我的情况下,图像的大小将转换为(300,XXX),XXX似乎计算(image.realHeight * 300.0 / image.realWidth)
实际上我不会改变项目中图像的大小。
以下是我的问题:
我的代码有什么问题?
如何使图像的宽度与imageView的宽度相同?
答案 0 :(得分:0)
最后,我找到了答案 原因是我使用的是最新版本的SDWebImage
这是解决方案:-)
如果您想获取原始图片,则必须更改SDWebImage/SDWebImageDecoder.m
中的代码,如下所示:
CGContextRelease(context);
//add this method
UIImage *decompressedImage = [UIImage imageWithCGImage:decompressedImageRef];
//delete this method
UIImage *decompressedImage = [UIImage imageWithCGImage:decompressedImageRef scale:image.scale orientation:image.imageOrientation];
CGImageRelease(decompressedImageRef);
return decompressedImage;
}
如果您想了解更多详情,可以看到以下链接
SDWebImage ---- Images from web-url too small when using v. 3.7.4 and above