Xcode两种引入图片的方法

2021-01-16 09:31:14

参考链接 iOS Xcode图片放入的两种方式Asset Catalogs和直接拖入

参考链接二 xcode9拖拽图片,imageNamed:就尴尬了


本地图片的两种放入方式

1 .Asset Catalogs

一般是以蓝色的Assets.xcassets的文件夹形式在工程中,以Image Set的形式管理。当一组图片放入的时候同时会生成描述文件Contents.json。且在打包后以Assets.car的形式存在,不能打开(网上有工具ThemeEngine可以打开,感兴趣的可以测试)。
以此方式放入的图片并不在mainBundle中,不能使用contentOfFile这样的API来加载图片,interface builder中使用图片时不需要后缀和倍数标识(@2x这样的)

1465346-d49fa6b0633f4fdb.png.jpeg

1465346-7492a2fe70329322.png.jpeg

 优势: 性能好,节省Disk。Asset Catalogs会用一个高度优化的特殊格式来存所有图片,而不是一个一个的单独的图片资源,会更少的涉及频繁Disk I/O操作,且会按需下载适合你机型的合适分辨率的图片资源; 安全性。图片资源得到一定程度保护(Asset,car不易打开)

2.直接拖拽到工程

如果是纯代码,图片名需要手动添加@2x,@3x等倍数标识,且需要指明后缀.png,.jpg;IB添加图片的话只需要指明后缀就好,不用添加倍数标识。
注意: 私有pod由于bundle的问题需要采用这种方式来放置资源图片,在interface builder中也可以直接使用,只要写好倍数标识和后缀就好。如果采用代码方式需要使用contentsOfFile的方式并制定好自己的bundle

1465346-14fd785e526bf0e4.png.jpeg


  • 2017-03-23 22:29:52

    Android开发中Handler的经典总结

    当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件,进行事件分发。

  • 2017-03-27 16:24:26

    laravel,gulp,Browsersync浏览器同步测试

    Browsersync能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less等)并自动刷新页面。更重要的是 Browsersync可以同时在PC、平板、手机等设备下进项调试。您可以想象一下:“假设您的桌子上有pc、ipad、iphone、android等设备,同时打开了您需要调试的页面,当您使用browsersync后,您的任何一次代码保存,以上的设备都会同时显示您的改动”。无论您是前端还是后端工程师,使用它将提高您30%的工作效率。

  • 2017-03-28 09:27:41

    Java中Arrays的asList()方法

    Java中Arrays的asList()方法 可以将 数组转为List 但是,这个数组类型必须是 引用类型的,如果是8中基本数据类型就不可以 原因如下,引用别人的一篇文章:

  • 2017-03-28 10:58:01

    No such property: sonatypeRepo for class:

    这种问题一般是出现在导入一些开源项目的时候。原因为该项目的原作者会把项目发布到maven中央仓库中,所以在gradle中添加了相关的maven发布任务,而发布任务需要配置