UIImageView 的contentMode这个属性是用来设置图片的显示方式,如居中、居右,是否缩放等,有以下几个常量可供设定:
UIViewContentModeScaleToFill
UIViewContentModeScaleAspectFit
UIViewContentModeScaleAspectFill
UIViewContentModeRedraw
UIViewContentModeCenter
UIViewContentModeTop
UIViewContentModeBottom
UIViewContentModeLeft
UIViewContentModeRight
UIViewContentModeTopLeft
UIViewContentModeTopRight
UIViewContentModeBottomLeft
UIViewContentModeBottomRight
注意以上几个常量,凡是没有带 Scale的,当图片尺寸超过 ImageView尺寸时,只有部分显示在ImageView中。UIViewContentModeScaleToFill属性会导致图片变形。 UIViewContentModeScaleAspectFit会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView 会有部分空白。UIViewContentModeScaleAspectFill也会证图片比例不变,但是是填充整个ImageView的,可能只有部 分图片显示出来。
CGRect imageRect = CGRectMake(100, 100, _window.frame.size.width/2, _window.frame.size.height/2);
UIImageView *imageView = [[UIImageView alloc]initWithFrame:imageRect];
imageView.image=[UIImage imageNamed:@"bg2.jpg"];
imageView.contentMode=UIViewContentModeScaleAspectFit;
imageView.backgroundColor=[UIColor yellowColor];
imageView.clipsToBounds=YES;
imageView.alpha=0.8;
[_window addSubview:imageView];