zoukankan      html  css  js  c++  java
  • ios appIcon配置

    iOS 我所知道的Assets.xcassets

    字数923 阅读723 评论1 

    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下载

  • 相关阅读:
    ASP.NET MVC 重点教程一周年版 第二回 UrlRouting
    ASP.NET MVC 重点教程一周年版 第三回 Controller与View
    DynamicData for Asp.net Mvc留言本实例 下篇 更新
    Asp.net MVC视频教程 18 单选与复选框
    使用ASP.NET MVC Futures 中的异步Action
    ASP.NET MVC RC 升级要注意的几点
    ATL、MFC、WTL CString 的今生前世
    msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
    关于Windows内存的一些参考文章
    Windows访问令牌相关使用方法
  • 原文地址:https://www.cnblogs.com/soulDn/p/5836005.html
Copyright © 2011-2022 走看看