简单阐述下OC中UIImage三种创建方式~~~
一. 直接使用imageNamed进行创建
1 UIImage * image = [UIImage imageNamed:@"1.jpg"];
简单说一下这种方式的优缺点:
优点:代码量少,一行代码就可以搞定。当程序中多次加载这张图片时,系统会指向同一块内存,这样可以提升效率。
缺点:系统每次会将图片缓存到计算机的内存中去,如果图片非常大,非常多,会消耗很大的计算机内存,会出现卡顿的现象。
二.将本地图片转换成NSData类型存储
1 NSString *filePath = [[NSBundle mainBundle]pathForResource:@"1" ofType:@"jpg"]; 2 NSData *imageData = [NSData dataWithContentsOfFile:filePath]; 3 UIImage *image1 = [UIImage imageWithData:imageData];
优点:图片会被系统以数据的方式加载到程序中,当你不需要重复使用一个图片或者你需要加载大量的图片,不会大量消耗计算机内存,使用这种方式。
缺点:代码量较多,没有第一种简单。
三.通过NSURL获取网络图片
1 NSURL *url = [NSURL URLWithString:PATH]; 2 NSData *imageData = [NSData dataWithContentsOfURL:url]; 3 UIImage *image = [UIImage imageWithData:imageData];
上面的PATH是网络图片的地址。
这种方式的优缺点跟第二种应该是一样的,区别就在于获取图片的方式不一样。
转载于:https://www.cnblogs.com/code4better/p/5537125.html
简单阐述下OC中UIImage三种创建方式~~~相关推荐
- 总结windows下堆溢出的三种利用方式
创建时间:2004-04-08 文章属性:转载 文章提交:watercloud (watercloud_at_xfocus.org) 原文由Leven发在网络编程版: https://www.xfoc ...
- python请输入_python中的三种输入方式
python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...
- Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)
阅读目录 一.MVC与MTV 二.多对多表的创建 三.ajax,前后端传输编码格式contentType 四.批量插入数据与自定义分页器 摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端 ...
- 五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看)
五分钟教你使用vue-cli3创建项目(三种创建方式,小白入门必看) 一.搭建vue环境 安装Nodejs 官网下载Nodejs,如果希望稳定的开发环境则下LTS(Long Time Support) ...
- java线程的任务的三种创建方式,严格地说,就一种,就是如何重写Runnable接口的run()方法
仅简单演示Java中线程任务的三种创建方式 第一种:使用了适配器模式,有返回值,能抛出异常,任务代码写在Callable.call()方法中,Runnable的run方法会通过适配器调用到Callab ...
- Django 数据库查询优化,choices参数(数据库字段设计常见),MVC和MTV模型,多对多三种创建方式...
数据库查询优化 orm语句的特点:惰性查询 如果仅仅只是书写了orm语句,在后面没有用到该语句所查询出来的参数,那么orm会自动识别,并不执行 举例: res = models.Book.object ...
- 线程的三种创建方式和他们的优缺点
文章目录 一.线程的三种创建方式 1.继承Thread 2.实现Runable接口 3.实现Callable接口 二.三种创建方式的优缺点 1.使用Runnable接口比使用继承Thread的优势 2 ...
- 线程的三种创建方式以及代码实现
线程和进程的概念 一个进程可以有多个线程 程序:是指令和数据的有序集合(静态的) 进程:是执行程序的一次执行过程(动态的),是系统资源分配的单位.在操作系统中运行的程序就是进程. 通常在一个进程中可以 ...
- Servlet 的三种创建方式
Servlet 创建有三种方式. 1.实现 Servlet 接口 因为是实现 Servlet 接口,所以我们需要实现接口里的方法. 下面我们也说明了 Servlet 的执行过程,也就是 Servlet ...
最新文章
- js-带操作的赋值表达式
- httpclient 登录人人,并且发表说说。
- 阿里云华北3超大规模数据中心开服 ECS全系列降价20%
- HDU ACM 4031 Attack (树状数组--单点查询+区间更新)
- java时钟面板clock
- Kafka如何实现每秒上百万的超高并发写入?
- tomcat(2)一个简单的servlet容器
- JS实现滚动监听以及滑动到顶部
- 多任务学习模型之ESMM介绍与实现
- 计算机硬盘中病毒以后怎么办,计算机中病毒,格式化整个硬盘后还有?怎么办?...
- Spring学习总结(20)——Spring加载多个项目properties配置文件问题解决
- 后台审批功能 销售发货单 生成 销售出库单 java NC633 接口开发
- Azure云平台 GPS大数据解决方案 EventHub+Azure Databricks+Azure Cosmos DB Cassandra
- android关机重启流程代码
- vb.net中关于byval和byref的使用
- 神经网络实现手写数字识别
- ASP.NET CORE 内置的IOC解读及使用
- g4560和二代i5_奔腾g4560和i5 2500K哪个好
- 如何用 Minio SDK 访问滴滴云对象存储
- 添加wellcap和endcap作用
热门文章
- thinkphp3.2自定义success及error跳转页面
- 你在乎的--世界在乎的
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )屏幕适配
- jQuery 利用 $.getJson() 实现跨域
- 客服顾问的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(六)[转]...
- 解释型语言和编译型语言的区别
- python函数变量的作用域_学不会的Python函数——变量作用域
- matlab按某一列排序
- 查询分析器在哪里_你应该知道的3种Node.js分析器类型
- 2011年计算机二级试题,2011年3月全国计算机二级C++考试真题