iOS图片的填充方式UIImageView(contentMode)有什么不同

UIViewContentModeScaleAspectFit, //这个图片都会在view里面显示,并且比例不变 这就是说 如果图片和view的比例不一样 就会有留白如下图1

iOS图片的填充方式UIImageView(contentMode)有什么不同

          图1

UIViewContentModeScaleAspectFill, // 这是整个view会被图片填满,图片比例不变 ,这样图片显示就会大于view如下图2

iOS图片的填充方式UIImageView(contentMode)有什么不同

图2

既然要求不高 又不能留白 那我就可以用第二种 可是这样就超出位置了, 截掉就可以了!

然后完整过程就两步

[self.prp_imageViewsetContentMode:UIViewContentModeScaleAspectFill];

self.prp_imageView.clipsToBounds = YES;

完美解决 以下是效果图

iOS图片的填充方式UIImageView(contentMode)有什么不同

UIViewContentModeCenter

iOS图片的填充方式UIImageView(contentMode)有什么不同

UIViewContentModeTop

iOS图片的填充方式UIImageView(contentMode)有什么不同

UIViewContentModeBottom

iOS图片的填充方式UIImageView(contentMode)有什么不同

UIViewContentModeLeft

iOS图片的填充方式UIImageView(contentMode)有什么不同

UIViewContentModeRight

iOS图片的填充方式UIImageView(contentMode)有什么不同

UIViewContentModeTopLeft

iOS图片的填充方式UIImageView(contentMode)有什么不同

UIViewContentModeTopRight

iOS图片的填充方式UIImageView(contentMode)有什么不同

 

UIViewContentModeBottomLeft

iOS图片的填充方式UIImageView(contentMode)有什么不同

UIViewContentModeBottomRight

iOS图片的填充方式UIImageView(contentMode)有什么不同

其他更详细的属性介绍:

  • UIView有个UIViewContentMode类型的属性contentMode,可以通过它来修改视图的内容显示模式。 

    view sourceprint? 01.typedef NS_ENUM(NSInteger, UIViewContentMode) {02.UIViewContentModeScaleToFill, 03.UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is transparent04.UIViewContentModeScaleAspectFill, // contents scaled to fill with fixed aspect. some portion of content may be clipped. 05.UIViewContentModeRedraw, // redraw on bounds change (calls -setNeedsDisplay)06.UIViewContentModeCenter, // contents remain same size. positioned adjusted. 07.UIViewContentModeTop, 08.UIViewContentModeBottom,09.UIViewContentModeLeft, 10.UIViewContentModeRight,11.UIViewContentModeTopLeft, 12.UIViewContentModeTopRight,13.UIViewContentModeBottomLeft, 14.UIViewContentModeBottomRight, 15.};

    实例代码:

    view sourceprint? 1.CGRect rect = self.view.frame; 2.UIImageView *imageView = [[UIImageView alloc] initWithFrame:rect]; 3.imageView.contentMode = UIViewContentModeTop; 4.imageView.image = [UIImage imageNamed:@demoImage];5.[self.view addSubview:imageView];

     

    UIViewContentModeScaleToFill

    根据视图的比例去拉伸图片内容。

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeScaleAspectFit

    保持图片内容的纵横比例,来适应视图的大小。

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeScaleAspectFill

    用图片内容来填充视图的大小,多余得部分可以被修剪掉来填充整个视图边界。

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeRedraw

    这个选项是单视图的尺寸位置发生变化的时候通过调用setNeedsDisplay方法来重新显示。

    UIViewContentModeCenter

    保持图片原比例在视图中间显示图片内容

    如果视图大小小于图片的尺寸,则图片会超出视图边界,下面类同

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeTop

    保持图片原比例在视图中间顶部显示图片内容

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeBottom

    保持图片原比例在视图中间底部显示图片内容

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeLeft

    保持图片原比例在视图中间左边显示图片内容

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeRight

    保持图片原比例在视图中间右边显示图片内容

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeTopLeft

    保持图片原比例在视图左上角显示图片内容

    iOS图片的填充方式UIImageView(contentMode)有什么不同


    UIViewContentModeTopRight

    保持图片原比例在视图右上角显示图片内容

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeBottomLeft

    保持图片原比例在视图左下角显示图片内容

    iOS图片的填充方式UIImageView(contentMode)有什么不同

    UIViewContentModeBottomRight

    保持图片原比例在视图右下角显示图片内容

    iOS图片的填充方式UIImageView(contentMode)有什么不同