iOS 我所知道的Assets.xcassets

字数923 阅读723 评论1 喜欢3

Assets.xcassets是用来存放图像资源文件的。将一个图片放在Assets里面是这个样子的

目录结构

Image Set

Image Set图像集,下面有个Name,这个Name并不是指图片的名字而是指像集的名字。什么意思?上个图说明一下,

Image Set

[UIImage imageNamed:@"xxx"]通常这里xxx就是相集的名字,在相集里面放两张不一样的@2x和@3x图片,在iPhone6和iPhone6 Plus加载出来的会不一样。

两个完全不一样的图片

Devices

Devices下面有很多设置具体效果可以参见demo请戳这里下载

1、设置相同的相集下面的显示不同的图片。比如一个APP是适配iPhone和iPad,在iPhone上显示A图片,在iPad上显示B图片,勾选上iPhone和iPad那么可以对iPhone和iPad单独设置图片

不同设备不同图片

2、根据sizeClass设置图片,比如6Plus在横屏的时候显示A图片,在竖屏的时候显示B图片那么久可以设置Devices下面的 Width 和 Height

不同size不同图片

3、Memory和Graphics虽然我很想写,但是我真的不知道。还没用到过。希望知道的小伙伴可以留言告诉我。

4、 Scale Factors 可设置矢量图(Singele Vector)和位图(Vector wiht Overrides)

我们知道xcode可以放PDF格式的图片代替@2x,@3x图片,这样即使放大也不会失真

设置PDF矢量图片

5、 Render As 默认是Default还有两个分别是Oriminal Image(始终绘制图片原始状态,不使用Tint Color)Template Image(始终根据Tint Color绘制图片,忽略图片的颜色信息)

比如设置UITabBarItem中的图片的时候,默认情况下回对图片进行渲染成蓝色,(具体可以参照demo的第一个UITabBarItem),这个时候我们需要回复图片本来的颜色,这是图片的渲染为Oriminal Image就行了。
如果用代码实现的话,是这样

[[UITabBarItem alloc] initWithTitle:tittle image:[[UIImage imageNamed:@"image"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"selectedImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

Image

图片的信息比如 文件名(File Name) 大小(Size)等等上面设置的信息

Slicing

这个是用来设置图片的拉伸的。例如QQ聊天的气泡,四个角不被拉伸,中间的可以拉伸。如果用代码实现的话,可以参考MJ的博客。在Assets.xcassets怎么实现呢?

QQ20160409-0.png

开始拉伸

选择拉伸方向

拖动图片上的三根线,Slicing的值会跟着改变,在左侧线和中间线之间的像素会在拉伸时被填充,在中间线和右侧线之间的像素将被隐藏。在上侧线和中间线之间的像素会在拉伸时被填充,在中间线和下侧线之间的像素将被隐藏。

拉伸参数

不被拉伸的区域

总结:

如果图片存放在assets资源管理器,最终里面所以的图片会被打包成Assets.car(用ThemeEngine可以把图片弄出来),其作用在于

1、 自动识别@2x,@3x图片,

2、 根据不同的设备,不同的分辨率设置相应的图片。

3、 可以对图片进行剪裁和拉伸处理

在.car中的图片是不能通过imageWithContentsOfFile:来加载
imageName:加载的图片要么是Assets.car中的图片,要么是资源包(mainBundle)中直接存放的图片。如果用imageNamed:从Images.xcassets以外的地方加载图片,必须在文件名后加扩展名,例如:

 UIImage *image=[UIImage imageNamed:@"plus.png"];

demo下载

ios appIcon配置的更多相关文章

  1. IOS APP配置.plist汇总(转自coolweather )

    IOS APP配置.plist汇总(转自coolweather ) 此文转自http://www.cocoachina.com/bbs/read.php?tid=89684&page=1 作者 ...

  2. Apache Cordova for ios环境配置

    原文:Apache Cordova for ios环境配置 1.安装针对iOS的工具 https://technet.microsoft.com/ZH-cn/library/dn757054.aspx ...

  3. iOS 应用配置及证书生成教程

    简介 首先你需要有一个苹果的开发者帐号,一台苹果电脑.点击查看苹果开发者账号注册流程 本教程需完成应用信息配置,包括如下两个基本配置: AppID Bundle ID 同时,生成 如下三个证书文件及对 ...

  4. 光程科技IOS签名配置

    光程科技IOS签名配置,APICloudAPP签名时config配置必须加上: <preference name="appCertificateVerify" value=& ...

  5. jenkins自动化构建iOS应用配置过程中遇到的问题

    最近配置jenkins来自动构建iOS应用,期间遇上不少问题.在这里分享给大家,也给自己留个底,方便下次解决问题. 首先说明下基本情况,我们因为部署jenkins的机器不是Mac,所以不能安装Xcod ...

  6. iOS - Xcode 配置

    1.Xcode 配置 1.1 OS X 1)main 文件注释修改路径: /Applications(应用程序) ▸ Xcode.app ▸ Contents ▸ Developer ▸ Librar ...

  7. iOS AppIcon + launchImage+iPhone 屏幕分辨率相关知识

    本文主要包含不同iOS 版本的尺寸,分辨率,以及appIcon,launchImage 对不同iOS 版本的适配问题 以下是主要主要的参考资料 https://developer.apple.com/ ...

  8. vue.js 配置移动端的url Scheme和iOS端配置url Scheme

    假如urlScheme:baibai:// 一.vue.js端的配置: 1.通过html标签跳转: <p href="baibai://"></p> 2.通 ...

  9. iOS AVAudioSession 配置(录音完声音变小问题)

    有这么一个场景,首先我们录音,录音完再播放发现音量变小了: 百思不得其解,查看API发现AVAudioSession里面有这么一个选项, 如果你的app涉及到了音视频通话以及播放其他语音,那么当遇到声 ...

随机推荐

  1. 数据可视化(4)--jqplot

    本来打算继续研究Google Charts,但上头下了指示让看jqplot,无奈,只好先将Google Charts放一放,不过真心觉得Google Charts不错,现在先开始jqplot. jqP ...

  2. Hadoop入门进阶课程2--Hadoop2.X 64位编译

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  3. C#加密类

    var es= EncryptSugar.GetInstance(); string word = "abc"; var wordEncrypt = es.Encrypto(wor ...

  4. ActiveMQ学习(一)——MQ的基本概念

    1) 队列管理器 队列管理器是MQ系统中最上层的一个概念,由它为我们提供基于队列的消息服务. 2) 消息 在MQ中,我们把应用程序交由MQ传输的数据定义为消息,我们可以定义消息的内容并对消息进行广义的 ...

  5. QCustomplot使用分享(三) 图

    一.可以实现的图 相对于其他绘制图表的第三方库来说,QCustomPlot算是比较轻量的,不仅仅能实现功能,而且二次开发比较容易.下面我们来具体说下他可以实现那些图 QCPGraph:折线图,Line ...

  6. Gradle学习系列之二——创建Task的多种方法

    在本系列的上篇文章中,我们讲到了Gradle入门,在本篇文章中我们将讲到创建Task的多种方法. 请通过以下方式下载本系列文章的Github示例代码: git clone https://github ...

  7. attachEvent和addEventListener区别

    一般来说,可以直接封装成这种形式: var addEvent = function(element,type,handler){ if(element.addEventListener){ //DOM ...

  8. 数学 --- 高斯消元 POJ 1830

    开关问题 Problem's Link: http://poj.org/problem?id=1830 Mean: 略 analyse: 增广矩阵:con[i][j]:若操作j,i的状态改变则con[ ...

  9. MVC应用程序实现上传文件

    学习MVC以来,一直想实现上传文件的功能,使用jQuery来实现上传,有很多插件.此篇演示中,Insus.NET是使用Uploadify.http://www.uploadify.com/,它有更多的 ...

  10. 介绍两种风格的URL

    两种风格的“动态资源”——统一资源定位符(Uniform Resource Lactor,URL) 当前互联网上主要有两种主要风格的URL: 第一种直接在URL中知名文件(比如xxx.php,xxx. ...