UIImageView中图片尺寸模式

尺寸模式枚举:

typedef NS_ENUM(NSInteger, UIViewContentMode) {
    UIViewContentModeScaleToFill,
    UIViewContentModeScaleAspectFit,      // contents scaled to fit with fixed aspect. remainder is transparent
    UIViewContentModeScaleAspectFill,     // contents scaled to fill with fixed aspect. some portion of content may be clipped.
    UIViewContentModeRedraw,              // redraw on bounds change (calls -setNeedsDisplay)
    UIViewContentModeCenter,              // contents remain same size. positioned adjusted.
    UIViewContentModeTop,
    UIViewContentModeBottom,
    UIViewContentModeLeft,
    UIViewContentModeRight,
    UIViewContentModeTopLeft,
    UIViewContentModeTopRight,
    UIViewContentModeBottomLeft,
    UIViewContentModeBottomRight,
};

上面每个枚举的意思详解如下:

测试代码:

    UIImageView * imageView = [[UIImageView alloc] init];
    imageView.frame = CGRectMake(100, 200, 200, 300);
    imageView.image = [UIImage imageNamed:@"dog.png"];
    [imageView setBackgroundColor:[UIColor greenColor]];
    [self.view addSubview:imageView];
默认情况:

UIImageView中图片尺寸模式_第1张图片

1、UIViewContentModeScaleToFill   伸缩至高度和宽度与UIImageView的大小一致

    UIImageView * imageView = [[UIImageView alloc] init];
    imageView.frame = CGRectMake(100, 200, 200, 300);
    imageView.image = [UIImage imageNamed:@"dog.png"];
    imageView.contentMode = UIViewContentModeScaleToFill;
    [imageView setBackgroundColor:[UIColor greenColor]];
    [self.view addSubview:imageView];

UIImageView中图片尺寸模式_第2张图片

2、 UIViewContentModeScaleAspectFit    不改变图片高宽比例,且不超过UIImageView的尺寸范围的情况下 伸缩至最大

UIImageView中图片尺寸模式_第3张图片

3、UIViewContentModeScaleAspectFill    在图片比例不变的情况下伸缩至最大,但最多只允许宽或高其中一个超出UIImageView的尺寸

UIImageView中图片尺寸模式_第4张图片

4、UIViewContentModeCenter    不改变图片尺寸,在UIImageView正中央

UIImageView中图片尺寸模式_第5张图片

5、UIViewContentModeTop   不改变图片尺寸,但图片在UIImageView的顶部中央

UIImageView中图片尺寸模式_第6张图片

6、UIViewContentModeBottom     不改变图片尺寸,但图片在UIImageView的底部中央

UIImageView中图片尺寸模式_第7张图片

7、UIViewContentModeLeft       不改变图片尺寸,但图片在UIImageView的左边中央

UIImageView中图片尺寸模式_第8张图片

8、UIViewContentModeRight      不改变图片尺寸,但图片在UIImageView的右边中央

UIImageView中图片尺寸模式_第9张图片

9、UIViewContentModeTopLeft     不改变图片尺寸,但图片在UIImageView的左上角

UIImageView中图片尺寸模式_第10张图片

10、UIViewContentModeTopRight     不改变图片尺寸,但图片在UIImageView的右上角

UIImageView中图片尺寸模式_第11张图片

11、UIViewContentModeBottomLeft     不改变图片尺寸,但图片在UIImageView的左下角

UIImageView中图片尺寸模式_第12张图片

12、UIViewContentModeBottomRight     不改变图片尺寸,但图片在UIImageView的右下角

UIImageView中图片尺寸模式_第13张图片

13、UIViewContentModeRedraw   图片充满UIImageView,但是只要UIImageView的bounds属性发送改变就调用setNeedsDisplay方法

UIImageView中图片尺寸模式_第14张图片



你可能感兴趣的:(iOS,iOS-UI)