资产目录与文件夹参考:何时使用其中一个?

时间:2016-06-30 07:53:26

标签: ios xcode

我可以将文件放入Assets.xcassets,也可以将文件放入文件夹引用(蓝色文件夹)。我何时会选择一个而不是另一个?

2 个答案:

答案 0 :(得分:6)

您应该使用资产目录,因为这是Apple希望您继续使用的资产目录(工具将反映出来)并且它们带来许多优势:

  • App thinning

  • 设置无代码的资产属性,例如渲染模式或切片

  • 您不必记住@2x~ipad-568等命名惯例,以自动获取特定于设备的资源

  • 如果您勾选所支持的版本和设备的右侧框,资产目录将指出缺少的资产,并且它们提供了一个很好的概述

  • 您应该习惯他们,因为某些平台(例如,watchOS)要求您使用资产目录

有几点需要注意:

  • 如果您部署回iOS 6,某些功能don't work as expected - 资产目录仍然有助于组织您的资产,但运行时功能将无法正常工作,因为Xcode只会将普通图像文件转储到您的捆绑包中

  • 如果您部署到iOS 7或更高版本,Xcode会将所有资产编译成一个.car文件(这就是整个想法)。但是,这可能更难调试,因为您无法查看已编译的文件,这也意味着您不能简单地从单个资产获取文件URL。要创建文件URL,您始终必须加载资产(按名称)并首先将其写入磁盘。 *

  • 最后一点还暗示您无法使用NSBundle(在Swift 3.0:Bundle)API中检索图像文件的URL或路径。为了从主捆绑以外的捆绑中加载资产,您依靠Apple提供API which they do since iOS 8.0。如果您在资源包中组织共享代码并部署到iOS 7或更早版本,则不应使用资产目录。如果您打算开发一个框架,这可能是最重要的。

*例如,CoreSpotlight API允许您设置thumbnailURL,但如果您的图像位于资产目录中,则必须自己单独将其写入磁盘,或使用{{3属性。如果您有一个文件URL,那么您永远不必将资产加载到内存中。我不确定Spotlight是否可以从您的应用包中访问文件网址。这只是一个例子。

答案 1 :(得分:1)

您应该使用资产。文件夹引用可以做的许多好处

1)在没有任何代码的情况下改变图像的颜色

2)支持向量,pdf更好。

3)支持Slicing image

enter image description here

4)更轻松地管理资源以进行自动布局。如果您的资源有1x,2x,3x和ipad image size != iphone image size,则可以将6个文件添加到1个资产项目中。

您可以在这里阅读更多内容 http://krakendev.io/blog/4-xcode-asset-catalog-secrets-you-need-to-know