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
以外的地方加载图片,必须在文件名后加扩展名,例如:
如何获得images.xcassets 中图片的路径?的更多相关文章
-
JAVA-替换html中图片的路径-从html代码中提取图片路径并下载(完整版)
transHtml方法实现提取网络图片中得图片路径,将其重新下载到本地,并替换html中原来得路径 package com.googosoft.until; import java.io.Buffer ...
-
jq改变DIV中图片的路径
<script src="common/jquery.js"></script> <script language="javascript ...
-
mvc 解决StyleBundle中 图片绝对路径 装换成相对路径的问题 CssRewriteUrlTransform
问题 解决办法
-
透过现象看webpack处理css文件中图片路径转换的具体过程
webpack是目前使用比较流行的一个前端模块打包器,前端的任何资源都被当成一个模块来处理,如图片.css文件等等.在基于webpack构建的前端项目中,一般都会配置有关css文件处理的规则,这其中也 ...
-
Android获取SD卡中选中图片的路径(URL)
最近在做一个图片上传的功能,需要提供上传图片在SD卡中的路径,在网上看了些例子,改改调试成功,代码很简单.其布局文件如下: [html] view plain copy <?xml ver ...
-
c# 如何找到项目中图片的相对路径
c# 如何找到项目中图片的相对路径 string path = System.Environment.CurrentDirectory;//非Web程序if (System.Environment.C ...
-
vue的 v-for 循环中图片加载路径问题
先看一下产品需求,如下图所示, 产品要求图片和它的名称一一对应,本来是非常简单的需求,后台直接返回图片路径和名称,前台直接读取就可以了,但是我们没有存储图片的服务器,再加上是一个实验性的需求,图片需要 ...
-
C#获取Html中的图片元素路径
使用Ueditor的时候把文章以HTML标签的方式存在数据库中,同时还要将文章的第一张图片的路径一并存入数据库,所以就需要在Html中获取第一个图片的路径,没有图片的话设置一个默认的图片.代码如下: ...
-
tomcat中实现特定路径下的图片的url访问Tomcat配置图片保存路径,图片不保存在项目路径下
使用Tomcat作为服务器的时候,如果不配置图片保存路径,将图片保存在项目路径下,那么再次打war包发布项目可能会造成图片的丢失,每次重启前将图片先保存再copy到服务器明显不方便,这时可以配置图片保 ...
随机推荐
-
关于BigDecimal 和 double 类型保存金钱,以及精度问题,银行家舍入法
1. BigDecimal 类型数据 的创建,构造函数 有 public BigDecimal(BigInteger intVal, long val, int scale, int prec); p ...
-
条件变量pthread_cond_t怎么用
#include <pthread.h> #include <stdio.h> #include <stdlib.h> pthread_mutex_t mutex ...
-
Write cv::Mat to a file
如果我们想把OpenCV中的矩阵数据类型cv::Mat保存在一个文件中,可以使用如下的代码: void writeMatToFile(cv::Mat& m, const char* filen ...
-
Oracle性能调优(AWR)
一.AWR报告 AWR 是通过对比两次快照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分,这点与Statspack生成的报告非常类似.不过AWR在生成报告时,可以选择生成 ...
-
wordpress All in one Seo
原文地址:http://www.7adesign.com/155.html WordPress插件All-in-one-seo-pack详细设置: I enjoy this plugin and ha ...
- pixel像素与物理像素
-
Cacti+Nagios监控平台完美整合
Cacti+Nagios监控平台完美整合 本博文出自51CTO博客吴光科博主,有任何问题请进入博主页面互动讨论!博文地址:http://wgkgood.blog.51cto.com/1192594/1 ...
-
windows c/c++ 代码运行时间,毫秒级
#pragma once /* //计算代码段运行时间的类 // */ #include <iostream> #ifndef ComputeTime_h #define ComputeT ...
-
hello2 source anaylis
首先,我们先来看一看这一段的整体代码, 代码如下: @WebServlet("/greeting") public class GreetingServlet extends Ht ...
-
Apktool的安装与使用
官网的安装方式如下图: 前提条件: Java 1.8版本已安装 通过在终端内输入"java -version"可以查看Java版本 因为我用的是MacBook,所以只介绍如何在Ma ...