博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发技巧-UIImageView 的contentMode属性说明和使用
阅读量:7235 次
发布时间:2019-06-29

本文共 1837 字,大约阅读时间需要 6 分钟。

contentMode这个属性是用来设置图片的显示方式,如居中、居右,是否缩放等。 苹果api里面的说明

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,};复制代码

测试代码

- (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比例不同

UIViewContentModeScaleAspectFit例子: 红色是ImageView的背景颜色,比例和图比例不同,导致出现ImageView空白

UIViewContentModeScaleAspectFill例子: 图片超出了ImageView的范围

设置clipsToBounds = YES 后,会裁剪掉超出ImageView的范围的图片

转载地址:http://atlfm.baihongyu.com/

你可能感兴趣的文章
atitit.无线上网卡 无法搜索WiFi 解决无线路由器信号不能被连接
查看>>
C#进阶系列——DDD领域驱动设计初探(三):仓储Repository(下)
查看>>
android 电容屏(三):驱动调试之驱动程序分析篇
查看>>
数字签名时间戳服务器的原理 !
查看>>
C++ Split string into vector<string> by space
查看>>
JavaScript学习——内置属性
查看>>
Oracle Profile 使用详解--zhuanzai
查看>>
Hadoop-1.1.2、HBase-0.94.7完全分布式集群结构
查看>>
TP-Link wr703N 使用华为HiLink系列上网卡的设置【转】
查看>>
士兵杀敌(四)(树状数组+线段树)
查看>>
Linux 高可用(HA)集群基本概念2
查看>>
Struts+Spring+Hibernate整合入门详解
查看>>
[转载]浅谈组策略设置IE受信任站点
查看>>
【转】maven导出项目依赖的jar包
查看>>
JS实现文本复制与剪切
查看>>
s标签可以if elseif else
查看>>
每天一个linux命令(20):linux chmod命令
查看>>
MySQL复合分区
查看>>
eval解析JSON中的注意点
查看>>
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
查看>>