iOS图片填充UIImageView(contentMode)
本文主要形象的介绍一下UIView的contentMode属性:
核心代码
[self.prp_imageView setContentMode:UIViewContentModeScaleAspectFill];
self.prp_imageView.clipsToBounds = YES;
UIViewContentModeScaleAspectFit, //这个图片都会在view里面显示,并且比例不变 这就是说 如果图片和view的比例不一样 就会有留白如下图1
UIViewContentModeScaleAspectFill, // 这是整个view会被图片填满,图片比例不变 ,这样图片显示就会大于view如下图2
既然要求不高 又不能留白 那我就可以用第二种 可是这样就超出位置了,于是同事又开口了 截掉就可以了
然后完整过程就两步
[self.prp_imageView setContentMode:UIViewContentModeScaleAspectFill];
self.prp_imageView.clipsToBounds = YES;
完美解决 以下是效果图
实在是太喜欢他们了就先暂时当我的模特吧
然后 我就把所有的都是试验了一遍,各种区别大家就看图总结吧
UIViewContentModeCenter
UIViewContentModeTop
UIViewContentModeBottom
UIViewContentModeLeft
UIViewContentModeRight
UIViewContentModeTopLeft
UIViewContentModeTopRight
UIViewContentModeBottomLeft
UIViewContentModeBottomRight
其他更详细的属性介绍:
UIView有个UIViewContentMode类型的属性contentMode,可以通过它来修改视图的内容显示模式。
view sourceprint?
01.
typedef NS_ENUM(NSInteger, UIViewContentMode) {
02.
UIViewContentModeScaleToFill,
03.
UIViewContentModeScaleAspectFit,
// contents scaled to fit with fixed aspect. remainder is transparent
04.
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
根据视图的比例去拉伸图片内容。
UIViewContentModeScaleAspectFit
保持图片内容的纵横比例,来适应视图的大小。
UIViewContentModeScaleAspectFill
用图片内容来填充视图的大小,多余得部分可以被修剪掉来填充整个视图边界。
UIViewContentModeRedraw
这个选项是单视图的尺寸位置发生变化的时候通过调用setNeedsDisplay方法来重新显示。
UIViewContentModeCenter
保持图片原比例在视图中间显示图片内容
如果视图大小小于图片的尺寸,则图片会超出视图边界,下面类同
UIViewContentModeTop
保持图片原比例在视图中间顶部显示图片内容
UIViewContentModeBottom
保持图片原比例在视图中间底部显示图片内容
UIViewContentModeLeft
保持图片原比例在视图中间左边显示图片内容
UIViewContentModeRight
保持图片原比例在视图中间右边显示图片内容
UIViewContentModeTopLeft
保持图片原比例在视图左上角显示图片内容
UIViewContentModeTopRight
保持图片原比例在视图右上角显示图片内容
UIViewContentModeBottomLeft
保持图片原比例在视图左下角显示图片内容
UIViewContentModeBottomRight
保持图片原比例在视图右下角显示图片内容
【原文出自:http://www.2cto.com/kf/201507/412894.html 】
iOS图片填充UIImageView(contentMode)的更多相关文章
- iOS 图片填充 UIImageView (contentMode)
掐指算下来做iOS开发也是有两年多的时间了,然后今天一个超级常用的控件让我颜面大跌,于是我准备把自己的丢人行径公之于众.如果您看到我这篇文章时和我一样,也是刚刚知道这项功能,那么您就当收获了一个... ...
- iOS 图片填充 UIImageView
UIViewContentModeScaleAspectFit, //这个图片都会在view里面显示,并且比例不变 这就是说 如果图片和view的比例不一样 就会有留白如下图1 UIView ...
- UI-UIImageView的图片填充方式(contentMode)_图片作为控件背景图的拉伸方式(stretch)介绍
常用图片填充方式 这里只介绍三个最常用的图片填充方式 UIViewContentModeScaleToFill模式会导致图片变形.例如: UIViewContentModeScaleAspectFit ...
- 图片填充UIImageView大小不对
http://www.2cto.com/kf/201507/412894.html UIView的contentMode属性: 默认为Scale To Fill,会保留view的比例,不会完全按照设定 ...
- UIImage 和 iOS 图片压缩UIImage / UIImageVIew
UIImageView 制作气泡 stretchableImageWithLeftCapWidth http://blog.csdn.net/justinjing0612/article/detail ...
- iOS开发系列-UIImageView的contentMode
typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, UIViewContentModeScale ...
- iOS 图片背景模糊效果
iOS 图片背景模糊效果 1.使用CoreImage中的模糊滤镜 原始效果图如下: CoreImage的实现: - (void)viewDidLoad { [super viewDidLoad]; / ...
- iOS 图片旋转方法
iOS 图片旋转方法 通过 CGImage 或 CIImage 旋转特定角度 UIImage可通过CGImage或CIImage初始化,初始化方法分别为init(cgImage: CGImage, s ...
- iOS 图片轮播图(自动滚动)
iOS 图片轮播图(自动滚动) #import "DDViewController.h" #define DDImageCount 5 @interface DDViewContr ...
随机推荐
- spring事务源码解析
前言 在spring jdbcTemplate 事务,各种诡异,包你醍醐灌顶!最后遗留了一个问题:spring是怎么样保证事务一致性的? 当然,spring事务内容挺多的,如果都要讲的话要花很长时间, ...
- C#自动弹出窗口并定时自动关闭
最近做个小项目,用到一个小功能:后台线程定时查询数据库,不符合条件的记录弹出消息提醒(在窗口最前面),并且过几秒钟再自动关闭弹出的窗口. 所以从网上找来资料,如下: WinForm 下实现一个自动关闭 ...
- Ceph osd启动报错osd init failed (36) File name too long
在Ceph的osd节点上,启动osd进程失败,查看其日志/var/log/ceph/ceph-osd.{osd-index}.log日志,报错如下: 2017-02-14 16:26:13.55853 ...
- .NET MD5加密解密代码
MD5简介: 是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是MD2.MD4还是MD5,它们都需要获 ...
- 数据库 t-sql 语句
sql 高级语句 在基础语句上加上条件 条件修改: update 表名set 列明=要修改的值 where 列名 =原来的值 条件删除 删除 这个值的的一行 delete from 表名 ...
- 为什么Node.JS会受到青睐?
为什么会是Node.JS? 从技术上讲,Node.JS不是一个非常好的项目,Node.JS只是把一个烂想法实现到了可以接受的程度. 但是人们为什么愿意用Node.JS? 从历史看来,成功的项目从来都不 ...
- CAEmitterLayer 粒子效果(发射器)
//创建Layer CAEmitterLayer *emitterLayer = [CAEmitterLayer layer]; //边框 emitterLayer.borderWidth = 1.0 ...
- IE浏览器img不显示解决
下面的只是一个我们在网页中插入一个图片的简单例子,浏览的时候我们也没有任何问题 <!doctype html> <html> <head> <meta cha ...
- 如何在container中编译dotnet的eShopOnContainers
准备的软件 问题 Image下载问题 以下就是为啥要有最后一个软件(我是使用版): SQLSever for Linux 内存需求 需要编译Image 成功搞定 参考 Welcome to t ...
- Codeforces Gym 100269E Energy Tycoon 贪心
题目链接:http://codeforces.com/gym/100269/attachments 题意: 有长度为n个格子,你有两种操作,1是放一个长度为1的东西上去,2是放一个长度为2的东西上去 ...