用UIImageView显示图片的时候,一般我们都是先把UIImageView的宽和高都设置好了,然后下载图片显示就可以了;但是下载的图片有可能拉伸,那么就需要显示图片的时候 等比显示;如下面(ImageVIew是一个设置好的UIImageView):
//下面这中方式显示的图片是不会拉伸的,它是等比显示的,然后把超出显示的部分剪切掉
self.ImageVIew.image = [UIImage imageNamed:@"yangyang"];
// 内容模式
self.ImageVIew.contentMode = UIViewContentModeScaleAspectFill;
// 超出边框的内容都剪掉
self.ImageVIew.clipsToBounds = YES;
下面用图介绍几种常用的方式
上图中的底部蓝色部分是设置好的UIImageView的宽和高
第一种是拉伸填充的;
第二种是等比填充的不会拉伸,居中显示;
第三种就是最上面的那种,他是等比缩放,要缩放到宽或者高有一个刚刚好,但是另一个(宽或者高)有可能也是刚刚好或者超出显示的部分(不会有显示的图片小与宽或者高),然后居中显示,超出的部分剪切掉;
UIImageView的contentMode的属性方式:
UIViewContentModeScaleToFill : 图片拉伸至填充整个UIImageView(图片可能会变形)
UIViewContentModeScaleAspectFit : 图片拉伸至完全显示在UIImageView里面为止(图片不会变形)
UIViewContentModeScaleAspectFill :
图片拉伸至 图片的宽度等于UIImageView的宽度 或者 图片的高度等于UIImageView的高度 为止(居中显示)
UIViewContentModeRedraw : 调用了setNeedsDisplay方法时,就会将图片重新渲染
UIViewContentModeCenter : 居中显示
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
经验规律:
1.凡是带有Scale单词的,图片都会拉伸
2.凡是带有Aspect单词的,图片都会保持原来的宽高比,图片不会变形