contentMode这个属性是用来设置图片的显示方式,如居中、居右,是否缩放等。
苹果api里面的说明
typedef NS_ENUM(NSInteger, UIViewContentMode)
{
UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit,
UIViewContentModeScaleAspectFill,
UIViewContentModeRedraw,
UIViewContentModeCenter,
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
};
测试代码
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view addSubview:self.picIMV];
CGFloat x,y,w,h;
x = 100;
y = 100;
w = 200;
h = 200;
CGRect r_rect = (CGRect){x,y,w,h};
self.picIMV.frame = r_rect;
self.picIMV.image = [UIImage imageNamed:@"yui01.jpeg"];
self.picIMV.center = self.view.center;
}
- (UIImageView *)picIMV
{
if (!_picIMV)
{
_picIMV = [[UIImageView alloc]init];
_picIMV.contentMode = UIViewContentModeScaleAspectFill;
_picIMV.backgroundColor = [UIColor redColor];
}
return _picIMV;
}
没有带Scale的,当图片尺寸超过 ImageView尺寸时,只有部分显示在ImageView中。
UIViewContentModeScaleToFill 属性会导致图片变形
。
UIViewContentModeScaleAspectFit 会保证图片比例不变
,而且全部显示在ImageView中,这意味着ImageView会有部分空白。
UIViewContentModeScaleAspectFill也会证图片比例不变
,但是是填充整个ImageView的,可能只有部分图片显示出来。
UIViewContentModeScaleToFill例子:
图片是变形了的,和ImageView比例不同
![UIViewContentModeScaleToFill效果.png](https://upload-images.jianshu.io/upload_images/4374748-d1712de48a26be91.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
UIViewContentModeScaleAspectFit例子:
红色是ImageView的背景颜色,比例和图比例不同,导致出现ImageView空白
![UIViewContentModeScaleAspectFit效果图.png](https://upload-images.jianshu.io/upload_images/4374748-44c0b579a38ab30a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
UIViewContentModeScaleAspectFill例子:
图片超出了ImageView的范围
![UIViewContentModeScaleAspectFill效果.png](https://upload-images.jianshu.io/upload_images/4374748-b1d881a5046701a4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
设置clipsToBounds = YES 后,会裁剪掉超出ImageView的范围的图片
![clipsToBounds设置YES.png](https://upload-images.jianshu.io/upload_images/4374748-04baa8196e7f1920.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)