文档章节

UIImageView小结

 脑残程序猿
发布于 2015/06/18 22:16
字数 481
阅读 2
收藏 0
点赞 0
评论 0
//初始化
UIImageView  *imageView=[[UIImageView alloc] initWithFrame:CGRectMake(100, 200, 120, 120)];

//需要设置图片 UIImage

第一种:[imageView setImage:[UIImage imageNamed:@"1.jpeg"]];

//第二种:
NSString *filePath=[[NSBundle mainBundle] pathForResource:@"1" ofType:@"jpeg"];
UIImage *images=[UIImage imageWithContentsOfFile:filePath];
//[imageView setImage:images]; 

//第三种:
NSData *data=[NSData dataWithContentsOfFile:filePath];
UIImage *image2=[UIImage imageWithData:data];
[imageView setImage:image2];

其中第一 二种属于一种,共两种:

1)用imageNamed的方式加载时,系统会把图像Cache到内存。如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存,而且释放图像的内存是一件相对来说比较麻烦的事情。例如:如果利用imageNamed的方式加载图像到一个动态数组NSMutableArray,然后将将数组赋予一个UIView的对象的animationImages进行逐帧动画,那么这将会很有可能造成内存泄露。并且释放图像所占据的内存也不会那么简单。但是利用imageNamed加载图像也有自己的优势。对于同一个图像系统只会把它Cache到内存一次,这对于图像的重复利用是非常有优势的。例如:你需要在一个TableView里重复加载同样一个图标,那么用imageNamed加载图像,系统会把那个图标Cache到内存,在Table里每次利用那个图像的时候,只会把图片指针指向同一块内存。这种情况使用imageNamed加载图像就会变得非常有效。

    2)利用NSData方式加载时,图像会被系统以数据方式加载到程序。当你不需要重用该图像,或者你需要将图像以数据方式存储到数据库,又或者你要通过网络下载一个很大的图像时,请尽量使用imageWithData的方式加载图像。

    无论用哪种方式加载图像,图像使用结束后,一定要记得显示释放内存。   


© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 8
码字总数 8954
作品 0
广州
iOS学习之flappyBird游戏的实现

导言 在本人还是学生的时候,flappyBird这款游戏非常火爆,最后等到Android版的出来之后,也是很痴迷的玩了一把。可是,本人游戏天赋一直平平,几度玩得想摔手机。本文主要介绍如何开发iOS平...

Chars-D ⋅ 2016/02/06 ⋅ 0

IOS UIImageView & 汤姆猫实例

一 UIImageView 简介 UIImageView是显示图片的控件,显示图片时,首先需要把图片加载到UIImage控件中,然后根据UIImage控件,设置到UIImageView相对应的属性中。 1 创建UIImage对象 //使用应...

卧龙小 ⋅ 2014/12/17 ⋅ 0

疯狂ios讲义之图像控件(UIImageView)

UIImageView代表一个图片显示控件,它直接继承了UIView基类,没有继承UIControl,因此,UIImage只能作为图片的显示控件,不能接受用户输入,也不能与用户交互,它只是一个静态控件。 当程序需...

博文视点 ⋅ 2014/01/22 ⋅ 0

UIKit 手写控件 UIImageView 和UITableView

UIImageView 是用来放置图片的 创建⼀一个UIImageView对象有五种⽅方法: 1.UIImageView imageView1 = [[UIImageView alloc] init]; 实例化了一个UIImageView类型的对象 2. UIImageView image...

温暖c ⋅ 2015/11/12 ⋅ 0

UIImageView圆角,自适应图片宽高比例,图片拉伸,缩放比例

/* 设置圆角,通过layer中的cornerRadius和masksToBounds即可。 自适应图片宽高比例。通过UIViewContentModeScaleAspectFit设置,注意这个UIImageView的frame就不是init中的数据了。 同样的U...

metalmouse ⋅ 2012/11/04 ⋅ 0

常用UI控件之UIImageView

1.UIImageView概述及初始化方法 UIImageView继承于UIView,主要用于在界面上现实图片,图片可以自动适应UIImageView的宽度和高度,而不用修改 分辨率(UIButton也可以自适应大小) 1.1初始化方法:...

tuwangsheng ⋅ 2014/04/27 ⋅ 0

iOS - UIImageView

UIImageView上不能再添加控件了,即UIImageView不可作为父视图,要实现在图片上添加标签,可以加到UIImageView的父视图上。在UIImageView的layer上可不可以暂未实践过。...

水一样的人儿 ⋅ 2015/12/22 ⋅ 0

UIImageView-PlayGIF

UIImageView-PlayGIF 是 UIImageView 子类,用来显示 GIF。UIIMageView-PlayGIF 性能高,而且占用的内存很低。

叶秀兰 ⋅ 2014/04/09 ⋅ 0

有关UITableViewCell中UIImageView的尺寸问题

UITableViewCell是使用布局画出来的,在上面有一个UIImageView控件,指定Mode属性为Scale To Fill,并设定好其Width和Height的值,然后运行 结果图片超出了我设置的UIImageView的大小,并没有...

Henry_Chen ⋅ 2012/10/18 ⋅ 8

OC中的UIImageView

UIImageView 本地图片和网络图片的添加 动画 假如 UIImageView 上面有一个Button,这时,就要让 UIImageView 可以被点击

Dumplings ⋅ 2016/04/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 29分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 33分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 39分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 39分钟前 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 40分钟前 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

Java序列化和反序列化

1、什么是序列化和反序列化 序列化:把对象转换为字节序列的过程。 反序列化:把字节序列恢复成对象的过程。 2、被序列化的类需要实现serializable接口,只是为了标注该对象是可以被序列化的...

IT-Mamba ⋅ 今天 ⋅ 0

流式构建原理

流式构建需要达到分钟级的数据更新频率,Kylin采用类似于Spark Streaming的做法,每隔数分钟进行一次微构建。这边的构建需要考虑到一个延迟因素,分布式网络存在延迟等因素,该时间段的数据有...

无精疯 ⋅ 今天 ⋅ 0

在maven项目工程编写solr代码,需要的依赖

solrJ <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>6.6.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents<......

爱运动的小乌龟 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部