iOS组件化图片资源的使用方式

网上也查到很多组件化中图片资源的使用方法的文章,基本都是两种方式:bash

方法一:直接使用将图片资源直接放在一个文件夹中,而后经过设置s.resource_bundles引入文件夹内的图片将图片引入。组件化

方法二:将图片放在bundle文件中,经过s.resources将bundle文件引入。优化

不管用哪一种方式,都存在如下几个问题:spa

  1. 没法自动识别二倍三倍图。
  2. 没法像正常的Xcode工程同样,方便地经过Assets.xcassets中直接可视化的管理图片的各类拉伸、渲染属性。
  3. 在xib中使用图片时候,须要在图片名以前附带图片途径,且没法在xib中直接预览。
  4. 没法利用Xcode自动图片压缩功能。

其中,最影响开发效率仍是xib中图片的使用,没法预览不可以直观的观察显示效果,须要手动加文件路径很是的影响开发效率。code

下面就是一个既可使用Assets.xcassets中直接可视化的管理图片的各类拉伸、渲染属性,还能够实如今xib中实现预览而且不须要加文件路径的方式来实现组件化中图片资源的使用方式:图片

1,图片资源的引入

将图片资源直接放在组建项目的Assets.xcassets中,而且在s.resource_bundles将 Assets.xcassets导入项目:资源

s.resource_bundles = {
    'xxxModule'=>['xxxModule/xxxModule/*.{xcassets}']
}
复制代码

2,xib资源的引入

这个很是重要,将全部xib资源也经过s.resource_bundles中导入,这里是为了让xib文件和Assets.xcassets文件在引入的组建的工程中保持在一个路径下,即MainProject/xxxModule.bundle/中,这样xib文件才可以在主工程中找到xcassets文件夹中的图片资源:开发

s.resource_bundles = {
    'xxxModule'=>['xxx/xxx/*.{xcassets}',
    'xxxModule/xxxModule/**/*.{xib}']
}
复制代码

完成上面的配置,就能够了~string

这样使用的好处:class

  1. 组件开发工程中直接经过xcassets文件夹维护图片资源,支持并自动识别自动识别二倍三倍图。
  2. 组件开发工程中能够可视化的设置图片的拉伸、渲染等属性。
  3. 组件开发工程中在xib中使用图片和正常项目彻底同样,不须要加路径前缀并支持预览。
  4. xcassets文件夹图片支持Xcode的自动图片压缩优化。
  5. 主工程中文件资源打包后统一在assets.car文件中,而不是散落成图片文件。
相关文章
相关标签/搜索