将大 UIImage 比例下载到 UIImageView
Posted
技术标签:
【中文标题】将大 UIImage 比例下载到 UIImageView【英文标题】:Downloaded big UIImage scale to UIImageView 【发布时间】:2015-02-25 07:49:33 【问题描述】:我正在下载一个相当大的图像并将其存储在UIImage
中。然后我将UIImage
添加到UIImageView
以显示,但UIImage
太大了,因此它只显示图像的一部分(它的左上角)。我希望它显示整个 UIImage,缩小图像以适应 UIImageView。
我查看了很多不同的答案,但我无法让它们中的任何一个起作用。我已将UIImageView
的缩放模式设置为 Aspect Fill、fit 和你的名字(也尝试过剪辑子视图),但没有任何效果。
代码如下:
UIImage *trackImg = [UIImage imageWithContentsOfFile:trackImagePath];
_backgroundImage.image = trackImg;
代码很简单,但它所做的只是下载一个 UIImage,并将其设置为 UIImageview 的图像。 UIImageView 在 interface-builder 中配置。
提前致谢。
【问题讨论】:
你能展示你的代码吗? 对不起,现在添加。 你设置了_backgroundImage.contentMode = UIViewContentModeScaleAspectFit; ?那么你检查 _backgroundImage 框架了吗? 哦,这是因为框架的大小已关闭。我把约束设置错了,搞砸了 -.-' 仍然习惯了这个新的约束系统(有时觉得有点难),我最终找错了地方。非常感谢,非常抱歉。 【参考方案1】:您可以使用 scaleToSize 方法调整图像大小:
-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
// Here pass new size you need
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
传递您的 UIImage,它应该会调整大小。调用方法为:
[self imageWithImage:[UIImage imageNamed:@"yourImage.png"] scaledToSize:CGSizeMake(25,45)];
【讨论】:
【参考方案2】:错误在于 imageView 的大小(感谢 Huy Nghia)。我设置了错误的约束,导致 imageView 的大小与我预期的不同,我无法轻易检测到,因为我希望它填满整个屏幕。
如果其他人遇到困难,请尝试确保您的限制是正确的。
【讨论】:
以上是关于将大 UIImage 比例下载到 UIImageView的主要内容,如果未能解决你的问题,请参考以下文章