繁体   English   中英

图像不适合UIImageView的框架

[英]Image is not fit to the frame of UIImageView

我正在使用界面生成器创建UIImageView 其框架尺寸为(320,67)。 我想在imageView上显示图像。 我从网上获取图像。 问题是从web获取的图像被拉伸到imageview上显示...这是我的代码

NSData *imageData=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.isco.com/webproductimages/appBnr/bnr1.jpg"]];
imageView.image = [UIImage imageWithData:imageData];

谁能告诉我如何显示图像适合在imageView上显示?

要么使用

imageView.contentMode = UIViewContentModeScaleAspectFill;

要么

imageView.contentMode = UIViewContentModeScaleAspectFit;

第一个将填充框架,可能会切断图像的一部分。 第二个将显示整个图像,可能会使框架的区域打开。

对于Swift:

imageView.contentMode = UIViewContentMode.ScaleAspectFit

对于Objective-C:

 imageView.contentMode = UIViewContentModeScaleAspectFit

ScaleAspectFit选项用于通过保持纵横比来缩放内容以适合视图的大小。 视图边界的任何剩余区域都是透明的。

截图

有关详细信息,请参阅Apple文档

在根据图像的纵横比缩放图像后,我最终调整了图像的大小。

let widthRatio = ImageView.bounds.size.width / (captureImageView.image?.size.width)!
let heightRatio = ImageView.bounds.size.height / (captureImageView.image?.size.height)!
let scale = min(widthRatio, heightRatio)
let imageWidth = scale * (ImageView.image?.size.width)!
let imageHeight = scale * (ImageView.image?.size.height)!
ImageView.frame = CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight)

试试这个代码。

imView.contentMode = UIViewContentModeScaleAspectFit;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM