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文件中,而不是散落成圖片文件。
相關文章
相關標籤/搜索