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. iOS-Debug

    1.打印该段代码在哪个类中哪个方法中执行的. NSLog(@"%s",__FUNCTION__); 2.Debug 方法 #define YYLogDebug(fmt, ...) ...

  2. Android学习笔记之横向二级菜单实现

    PS:元旦来一发. 学习内容: 1.Android二级横向菜单的实现过程.效果如上图...   这种横向的二级菜单在很多的app都有所应用.效果看起来还是非常的美观的.也算是项目需要,自己也就学了一下 ...

  3. Mysql学习笔记(十三)权限管理

    学习内容: 1.权限管理: 关于mysql的权限简单的理解就是mysql允许你做你权利以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执行update操作.只允许你从某台机器上连 ...

  4. js-条件语句、循环语句

    一. 常见条件语句 if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码 if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码 if... ...

  5. STL or 线段树 --- CSU 1555: Inversion Sequence

    Inversion Sequence Problem's Link:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1555 Mean: 给你一 ...

  6. 使用VS开发C语言

    在嵌入开发板上做了一段时间的C语言开发后,今天突然心血来潮,想起大学时期在TurboC和TC3下写代码的情形.大一时宿舍里有台386(在当时是算比较先进的了),大一大二基本上都在玩DOS和WIN31. ...

  7. sencha 报错问题汇总

    store的url必填 否则报错:Uncaught TypeError: Cannot read property 'indexOf' of undefined ext-all.js store必须在 ...

  8. TortoiseSVN中出现的图标问题及解决方法

    1.红色感叹号表示这个文件从服务器上下载下来以后,在本地被修改过.这时执行提交操作就可以了.2.黄色感叹号表示这个文件在提交的时候发现存在冲突,也就是说有别人在你提交之前对这个文件的同一个版本进行了修 ...

  9. csharp:引入app.manifest,程序在win7下以管理员权限运行配置方法

    https://msdn.microsoft.com/en-us/library/windows/desktop/hh848036(v=vs.85).aspx https://msdn.microso ...

  10. NFS客户端访问行为相关的几个参数解释

    soft / hard Determines the recovery behavior of the NFS client after an NFS request times out. If ne ...