UIImageView 的contentMode这个属性是用来设置图片的显示方式,如居中、居右,是否缩放等 系统自带了以下参数:
typedef enum {
UIViewContentModeScaleToFill, //默认
UIViewContentModeScaleAspectFit,
UIViewContentModeScaleAspectFill,
UIViewContentModeRedraw,
UIViewContentModeCenter,
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
}
对于上面常量,凡是没有带Scale的,当图片尺寸超过 ImageView尺寸时,只有部分显示在ImageView中。UIViewContentModeScaleToFill属性会导致图片变形。
UIViewContentModeScaleAspectFit会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白。
UIViewContentModeScaleAspectFill也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示出来。
图片正常现实的代码:
UIImageView * image = [[UIImageView alloc] init];
image.image = [UIImage imageNamed:@"图片"];
image.backgroundColor = [UIColor brownColor];
image.clipsToBounds = YES;
image.frame = CGRectMake(200, 200, 100, 100);
image.contentMode = UIViewContentModeScaleToFill;
[self.view addSubview:image];
PS:新手一枚 有错误欢迎大家指引,不喜勿喷。。^(* ̄(oo) ̄)^,
网友评论