網(wǎng)上也查到不少組件化中圖片資源的使用方法的文章,基本都是兩種方式:
方法一:直接使用將圖片資源直接放在一個(gè)文件夾中,然后通過設(shè)置s.resource_bundles引入文件夾內(nèi)的圖片將圖片引入。
方法二:將圖片放在bundle文件中,通過s.resources將bundle文件引入。
無(wú)論用哪種方式,都存在以下幾個(gè)問題:
- 無(wú)法自動(dòng)識(shí)別二倍三倍圖。
- 無(wú)法像正常的Xcode工程一樣,方便地通過Assets.xcassets中直接可視化的管理圖片的各種拉伸、渲染屬性。
- 在xib中使用圖片時(shí)候,需要在圖片名之前附帶圖片途徑,且無(wú)法在xib中直接預(yù)覽。
- 無(wú)法利用Xcode自動(dòng)圖片壓縮功能。
其中,最影響開發(fā)效率還是xib中圖片的使用,無(wú)法預(yù)覽不能夠直觀的觀察顯示效果,需要手動(dòng)加文件路徑非常的影響開發(fā)效率。
下面就是一個(gè)既可以使用Assets.xcassets中直接可視化的管理圖片的各種拉伸、渲染屬性,還可以實(shí)現(xiàn)在xib中實(shí)現(xiàn)預(yù)覽并且不需要加文件路徑的方式來實(shí)現(xiàn)組件化中圖片資源的使用方式:
1,圖片資源的引入
將圖片資源直接放在組建項(xiàng)目的Assets.xcassets中,并且在s.resource_bundles將
Assets.xcassets導(dǎo)入項(xiàng)目:
s.resource_bundles = {
'xxxModule'=>['xxxModule/xxxModule/*.{xcassets}']
}
2,xib資源的引入
這個(gè)非常重要,將所有xib資源也通過s.resource_bundles中導(dǎo)入,這里是為了讓xib文件和Assets.xcassets文件在引入的組建的工程中保持在一個(gè)路徑下,即MainProject/xxxModule.bundle/中,這樣xib文件才能夠在主工程中找到xcassets文件夾中的圖片資源:
s.resource_bundles = {
'xxxModule'=>['xxx/xxx/*.{xcassets}',
'xxxModule/xxxModule/**/*.{xib}']
}
完成上面的配置,就可以了~
這樣使用的好處:
- 組件開發(fā)工程中直接通過xcassets文件夾維護(hù)圖片資源,支持并自動(dòng)識(shí)別自動(dòng)識(shí)別二倍三倍圖。
- 組件開發(fā)工程中可以可視化的設(shè)置圖片的拉伸、渲染等屬性。
- 組件開發(fā)工程中在xib中使用圖片和正常項(xiàng)目完全一樣,不需要加路徑前綴并支持預(yù)覽。
- xcassets文件夾圖片支持Xcode的自動(dòng)圖片壓縮優(yōu)化。
- 主工程中文件資源打包后統(tǒng)一在assets.car文件中,而不是散落成圖片文件。