一直以为都被这个属性所困扰, 遇到时总是一个一个试,并没有了解各种特点,看过很多作者说明,还是有点困扰,决定自己写个.
主要困扰我的是以下几个属性
- UIViewContentModeScaleToFill
- UIViewContentModeScaleAspectFit
- UIViewContentModeScaleAspectFill
- UIViewContentModeCenter
UIViewContentModeScaleToFill
是contentMode的默认值,此属性可以确保显示完整的图片,但是如果imageView的宽高比和图片的宽高比不一致,则图片会被拉伸.
UIViewContentModeScaleAspectFit 与UIViewContentModeScaleAspectFill
这两个属性都带有Aspect,意思就是使图片按照原来的宽高比进行拉伸,不同点是UIViewContentModeScaleAspectFit是可以确保显示完整的图片,而UIViewContentModeScaleAspectFill则会出现图片溢出,显示不全的现象.
UIViewContentModeCenter
不会拉伸图片,如果imageView的尺寸大于图片的尺寸,则会将图片居中显示,反之则会显示图片的中间部分在imageView
总结:
- 带Scale的会拉伸图片,但不一定按照原来的宽高比拉伸
- 带ScaleAspect的会拉伸图片,会按照原来的宽高比拉伸
- 什么都不带的就按原图片大小来处理
- 如果imageView的宽高比与图片的宽高比相同,则UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, UIViewContentModeScaleAspectFill三者没有区别.