如何获得images.xcassets 中图片的路径?
2024-08-24 11:59:30
UIImage加载图片的方式以及Images.xcassets对于加载方法的影响
重点:
Images.xcassets
中的图片资源只能通过imageNamed:
方法加载,通过NSBundle的pathForResource:ofType:
无法获得图片路径。因此,Images.xcassets
只适合存放系统常用的,占用内存小的图片资源。
图片缓存
根据是否将创建好的对象缓存入系统内存,有两类创建UIImage
对象的方法可选:
- 缓存:
+ imageNamed:
,只需传入文件名.扩展名(可选)即可。 - 不缓存:
+ imageWithContentsOfFile:
,必须传入文件的全名(全路径+文件名)。
注意,对于有缓存功能的方法来说,其创建对象的步骤如下:
- 根据图片文件名在缓存池中查找特定的
UIImage
对象,入存在,将这个对象返回。 - 如果不存在,则从bundle中加载图片数据,创建对象并返回。
- 如果相应的图片数据不存在,返回nil。
Images.xcassets
Images.xcassets
在app打包后,以Assets.car
文件的形式出现在bundle中。其作用在于:
- 自动识别@2x,@3x图片,对内容相同但分辨率不同的图片统一管理。
- 可以对图片进行剪裁和拉伸处理。
UIImage从bundle中加载图片资源
注意
Images.xcassets
中的图片资源只能通过imageNamed:
方法加载,通过NSBundle的pathForResource:ofType:
无法获得图片路径。因此,Images.xcassets
只适合存放系统常用的,占用内存小的图片资源。imageNamed:
方法同样可以加载根目录中的图片资源。- 要想利用
imageWithContentsOfFile:
方法以不缓存的形式加载图片,必须将图片资源放置在根目录
中。 - 相对于jpg,iOS对png的支持较好,例如,如果从
Images.xcassets
以外的地方加载图片,必须在文件名后加扩展名,例如:
最新文章
- Linux splint命令
- Compile Sources 和 Copy Bundle Resources的区别
- For嵌套输出图形
- UserLogin
- uoj164. 【清华集训2015】V 统计
- JDBC的使用流程
- PHP获取远程文件的几种方式
- MySQL的ibdata1文件占用过大
- Appium环境搭建-精简版
- 爬虫基础之requests模块
- govendor 无法添加.h文件
- 洗礼灵魂,修炼python(68)--爬虫篇—番外篇之webbrowser模块
- linux中文件的时间戳
- LeetCode258 各位相加
- Java之反射举例
- powerdesigner远程连接数据库
- Java高级工程师需要弄明白的20个知识点
- 大学网站UI设计分析(以学校领导/历届领导为例)
- jquery截取手机号中间4位数,然后变为*
- Alpha混合
热门文章
- AlwaysOn可用性组功能测试(二)--SQL Server群集故障转移对AlwaysOn可用性组的影响
- isNaN() 确认是否是数字
- sql批量更换dedecms文章来源和作者
- Alice and Bob 要用到辗转相减
- [开源类库/项目] android保存崩溃时的错误信息log至本地【源码+jar包+使用说...
- BZOJ3223——Tyvj 1729 文艺平衡树
- leetcode 236. Lowest Common Ancestor of a Binary Tree
- trigger() &; bind() 使用心得
- PHP中面相对象对象的知识点整理
- echarts之字符云tooltip显示混乱问题的解决办法