UIImage

  A UIImage object is a high-level way to display image data. You can create images from files, from Quartz image objects, or from raw image data you receive. The UIImage class also offers several options for drawing images to the current graphics context using different blend modes and opacity values.

  一个 UIImage 对象是一个高级别的方式来显示图像数据。你可以从文件,从Quartz图像对象,创建的图像或您收到从原始图像数据。UIImage 类还提供了用于绘制图像到使用不同的混合模式和不透明度值的当前图形上下文的几个选项。

  官方推荐用UIImage加载图片尺寸是应该小于1024*1024,否则会有问题

1.普通加载一张图片

  根据名字加载一张图片到UIImage;

  UIImage *firstImg = [UIImage imageNamed:@"bg"];此时UIImage并未从文件中加载,因为他还没有显示到View中。当第一次显示到View中后,开始从路径中解码图片到内存中,并且缓存一份。

2.指定拉伸区域加载一张图片

  这张图片做较大的UIImageView的背景时,如果不处理会是这样

  

很明显变形了用这个方法处理一下就ok了

 – resizableImageWithCapInsets:resizingMode:

  – resizableImageWithCapInsets:

UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(, , , )];
[self.view addSubview:imageView]; UIImage *firstImg = [UIImage imageNamed:@"bg"]; // imageView.image = firstImg;
self.firstImageView.image = [firstImg resizableImageWithCapInsets:UIEdgeInsetsMake( , , , ) resizingMode:UIImageResizingModeStretch];

效果如图:

CapInsets:传入四个角的不改变的区域
resizingMode:模式。是一个系统枚举,如果图片的中间是一样的 两种模式随便选择

typedef NS_ENUM(NSInteger, UIImageResizingMode) {

UIImageResizingModeTile, //表示平铺充满 如果要是图片中间有文字会看到重复

UIImageResizingModeStretch,//表示拉伸充满 如果要是图片中间有文字会看到拉伸

};

3.动画加载一组图片

+ (UIImage *)animatedImageNamed:(NSString *)name duration:(NSTimeInterval)duration //加载同名的一组image,逐个显示成动画,注意这一组图片的名字一样,假如图片的名字为image0,image1,image2,image3...等,name只需要填@"image"即可。
+ (UIImage *)animatedImageWithImages:(NSArray *)images duration:(NSTimeInterval)duration//动画逐个显示NSArray里面的图片

//下面这两个方法是animatedImageNamed:duration: 和第二条中方法的结合 
+ (UIImage *)animatedResizableImageNamed:(NSString *)name capInsets:(UIEdgeInsets)capInsets duration:(NSTimeInterval)duration
+ (UIImage *)animatedResizableImageNamed:(NSString *)name capInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode duration:(NSTimeInterval)duration

  

  

UIImage学习的更多相关文章

  1. UIImage学习笔记

    UIImage是什么 用来管理APP里的图片资源,可以用来表示设备支持的图片资源,不仅仅是jpg和png. UIImage是immutable的,因此也是线程安全的. iOS支持的所有的图片格式 链接 ...

  2. github源码学习之UIImage+YYWebImage

    UIImage+YYWebImage是YYWebImage(https://github.com/ibireme/YYWebImage)中的一个分类,这个分类封装了一些image常用的变化方法,非常值 ...

  3. UI基础:UIButton.UIimage 分类: iOS学习-UI 2015-07-01 21:39 85人阅读 评论(0) 收藏

    UIButton是ios中用来响应用户点击事件的控件.继承自UIControl 1.创建控件 UIButton *button=[UIButton buttonWithType:UIButtonTyp ...

  4. iOS UIImage 图片局部拉伸的一些学习要点

    之前 做纯色局部拉伸 通过 top  bottom left  right 相交的阴影拉伸 屡试不爽 实施方法: imageView.image = [[UIImage imageNamed: @&q ...

  5. iOS学习-压缩图片(改变图片的宽高)

    压缩图片,图片的大小与我们期望的宽高不一致时,我们可以将其处理为我们想要的宽高. 传入想要修改的图片,以及新的尺寸 -(UIImage*)imageWithImage:(UIImage*)image ...

  6. iOS阶段学习第34天笔记(UI小组件 UISegment-UISlider-UIStepper-UIProgressView-UITextView介绍)

    iOS学习(UI)知识点整理 一.UI小组件 1.UISegmentedControl 分段选择器  实例代码 - (void)viewDidLoad { [super viewDidLoad]; / ...

  7. iOS阶段学习第33天笔记(自定义标签栏(UITabBar)介绍)

    iOS学习(UI)知识点整理 一.自定义标签栏 1.方法一 单个创建标签栏 #import "AppDelegate.h" #import "SecondViewCont ...

  8. 【swift学习笔记】三.使用xib自定义UITableViewCell

    使用xib自定义tableviewCell看一下效果图 1.自定义列 新建一个xib文件 carTblCell,拖放一个UITableViewCell,再拖放一个图片和一个文本框到tableviewc ...

  9. Coding源码学习第二部分(FunctionIntroManager.m)

    接上篇.上篇有一个细节忘了写,在Coding_iOS-Info.plist 里面添加了一个key 是 Status bar is initially hidden  Value 是 YES,在appl ...

随机推荐

  1. apache虚拟主机访问原理

    www.a.com www.b.org www.c.net 都放在10.0.0.10这个服务器上 那么客户访问这三个域名 服务器是怎么分辨访问的是哪个目录呢 GET http://download.m ...

  2. 还有 3 天,苹果就要关上 HTTP 大门了

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/274113001482113656 来源:腾云阁 h ...

  3. [sqoop1.99.6] 基于1.99.6版本的一个小例子

    1.创建mysql数据库.表.以及测试数据mysql> desc test;+-------+-------------+------+-----+---------+------------- ...

  4. Windbg使用简明指南

    第一章 准备 1.1.    环境配置 _NT_DEBUGGER_EXTENSION_PATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 _NT_SY ...

  5. Eclipse 安装中文插件

    从官网下载下来的Eclipse都是英文版,下载后解压,运行Eclipse. 地址:http://www.eclipse.org/babel/downloads.php .启动Eclipse,在菜单,“ ...

  6. UEditor手动调节其宽度

    其高度一般不考虑,给个初始高度,然后任其自动扩展就行,对于其宽度,有两种思路,一种是调节其所在的DIV的宽度,让其自动填充,另一种是直接调节编辑器的宽度: adjust_editor_size: fu ...

  7. 学jQuery Mobile后的感想

    jQuery Mobile是jQuery 在手机上和平板设备上的版本.jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架.支持全球 ...

  8. Swift 05.Block

    Swift的函数用法还真是灵活.但是个人感觉更灵活的还是闭包. swift闭包的概念大抵相当于OC的block的概念.如果对于block的理解很透彻的话,闭包的原理性的东西还是很好理解的. 剩下的就是 ...

  9. Oracle表的建立条件

    约束:1.非空约束a.字段不能为nullb.null 不等于 ''空字符串,oracle不允许把''写入到非空字符串型字段中2.主键约束a.指定某一列或某几列为主键列b.主键列必须具有非空约束c.主键 ...

  10. Python之路,Day9, 进程、线程、协程篇

    本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者 ...