元件化開發(二)
專案的基本配置
1. 圖片素材的位置
如圖一所示,我們在開發中,一般會把素材放到如上兩個位置A & B
對於放到
Assets.xcassets
資料夾的素材通過UIImage.init?(named name: String)
載入
public /*not inherited*/ init?(named name: String) // load from main bundle
let image = UIImage(named: "test.jpg")
載入順序是先去Assets.xcassets中找對應檔名的素材,如果沒有會去MainBundle中找到對應的素材,也就是先B後A
對於放到專案主資料夾中的素材,我們通過Bundle.main.path(forResource name: String?, ofType ext: String?)
let imagePath = Bundle.main.path(forResource: "test", ofType: "jpg")
let image = UIImage(contentsOfFile: imagePath)
該方式載入素材不會去到Assets.xcassets
中載入,會直接去MainBundle
中找,如果找不到,為空
在開發中,專案中經常會用到的素材最好放在Assets.xcassets中,通過UIImage.init?(named name: String)
載入會把圖片快取,如果經常用到,這樣可以保證節省系統資源。反之專案中不常用到的素材,最好放到專案主資料夾(MainBundle)中,通過該方式載入素材會獲取到素材的路徑path,然後通過public init?(contentsOfFile path: String)載入,通過public init?(contentsOfFile path: String)
載入圖片不會快取圖片。節省資源,比如第一次安裝App的引導素材偏大且不常用,使用這種方式更好!
2. 螢幕尺寸和啟動圖片的關係
螢幕尺寸是等於對應啟動圖片的大小的,如果缺少某個尺寸的圖片,如果缺少4.7寸的圖片,那麼當App執行在4.7寸螢幕的手機上時,會出現螢幕顯示異常。系統如果發現沒有找到當前裝置螢幕對應的尺寸的圖片會去找小於當前螢幕尺寸的素材,隨後拉伸素材直至佔滿螢幕。
3. Target Membership
對於專案中的檔案,大部分我們選中會發現在XCode右邊的工具欄中圖二(Target Membership)所示選項都是選中的
所有選中這個選項的檔案都會顯示在圖三所示的位置
顯示在圖三所示位置的檔案在編譯時都會參與編譯打包到最終的.App檔案中。如果某個檔案的Target Membership沒有選中,則在編譯時如果程式碼中引用了該檔案,則會提示報錯找不到對應檔案。
Tips:
- 對於info.plist檔案,系統會自動檢索info關鍵字,在編譯的時候會自動打包帶有info關鍵字的檔案。所以對於info.plsit檔案不需要選中Target Membership,如果選中,會提示
Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'FM/Info.plist'.
相關文章
- Vue 元件化開發Vue元件化
- Vue元件化開發Vue元件化
- 元件化開發與黑箱元件化
- Flutter元件化開發方案Flutter元件化
- iOS的元件化開發iOS元件化
- 元件化開發的思考元件化
- 元件化開發和模組化開發概念辨析元件化
- Android元件化開發實踐(一):為什麼要進行元件化開發?Android元件化
- iOS 元件化開發(二):遠端私有庫的更新與子庫iOS元件化
- Flutter元件化混合開發-AndroidFlutter元件化Android
- Vue 元件化開發之插槽Vue元件化
- 模組化開發(二)
- 漫談 React 元件庫開發(二):元件庫最佳實踐React元件
- 化整為零的Vue元件化開發Vue元件化
- NOW直播——Flutter元件化開發方案Flutter元件化
- 元件化工具BeeHive(二):元件化實踐元件化Hive
- 降本增效的利器——元件化開發元件化
- 元件化開發瞭解一下?元件化
- MVPArms官方首發一鍵生成元件化,體驗純傻瓜式元件化開發MVP元件化
- 元件化實踐詳解(二)元件化
- [MobX State Tree資料元件化開發][0]:開篇元件化
- 誰阻礙了你做元件化開發?元件化
- [譯] 元件化開發利器:Web Components標準元件化Web
- Android元件化開發實踐和案例分享Android元件化
- iOS 元件化開發(四):fastlane實現pod自動化iOS元件化AST
- Qt開發Activex筆記(二):Qt呼叫Qt開發的Activex控制元件QT筆記控制元件
- JAVA開發之簡化Dao層、提高開發效率(二)Java
- Android快速開發框架,基礎庫,樣式庫,元件化,元件整合Android框架元件化
- [MobX State Tree資料元件化開發]:目錄元件化
- iOS 元件化開發(三):載入資原始檔iOS元件化
- Android技術棧(二)元件化改造Android元件化
- webpack+jquery 元件化、模組化開發的解決方案WebjQuery元件化
- 如何開發一個基於 Vue 的 ui 元件庫(二)VueUI元件
- Vue元件開發Vue元件
- 從零開始學React:二檔 React生命週期以及元件開發React元件
- 微店的Flutter混合開發元件化與工程化架構Flutter元件化架構
- webpack(8)vue元件化開發的演變過程WebVue元件化
- 基於 MVP 的 Android 元件化開發框架實踐MVPAndroid元件化框架