国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

Swift中圖片資源使用流程的優化方法詳解

2020-03-09 17:42:36
字體:
來源:轉載
供稿:網友

前言

去年發布的Xcode9支持在代碼編輯中直接插入圖片,類似如下效果

swift,圖片資源,資源文件,讀取資源文件

但用了一段時間以后還是不太喜歡,換回了原來的方法。

本篇中許多實現細節已經在 iOS中多語言本地化流程的優化中寫過,沒再重復,若有疑問建議先閱讀該文章。

傳統的方法

// iOSlet closeImage = UIImage(named: "close")// macOSlet closeImage = NSImage(named: NSImage.Name("close"))

是不是看上去都感覺心累。

如何優化

思路和 iOS中多語言本地化流程的優化一樣,使用腳本將資源文件映射到靜態變量,即可直接調用:

Build Phases中新建一個 Run Script,填入以下腳本:

# Assets.xcassets文件夾路徑assetsFolder="${SRCROOT}/${PROJECT_NAME}/Assets.xcassets"# 生成的swift/299295.html">swift/274757.html">swift文件路徑(根據個人習慣修改)utilsFile="${SRCROOT}/${PROJECT_NAME}/Source/Utils/AssetsUtils.swift"touch $utilsFile# 兼容iOS和macOS的處理echo -e "#if os(OSX)/n typealias Image  = NSImage/n typealias ImageName = NSImage.Name/n#elseif os(iOS)/n import UIKit/n/n typealias Image  = UIImage/n typealias ImageName = String/n#endif" > "${utilsFile}"# 使用extension來擴展Imageecho -e "/nextension Image {" >> "${utilsFile}"# 遍歷資源文件夾,將每個資源拼接成靜態變量輸出到swift文件中for folder in `ls $assetsFolder`doif [[ $folder =~ ".imageset" ]]then asset=${folder/.imageset/} echo " static var assets_${asset}: Image? { return Image(named: ImageName(/"${asset}/")) }" >> "${utilsFile}"fidone# 完成輸出echo "}" >> "${utilsFile}"

第一次運行記得將AssetsUtils.swift加入到Xcode項目中

將 Run Script 放在 Compile Sources 的上面,這樣可以在編譯代碼前執行,如果出現錯誤也很容易定位。

swift,圖片資源,資源文件,讀取資源文件

腳本效果:

AssetsUtils.swift

#if os(OSX) typealias Image  = NSImage typealias ImageName = NSImage.Name#elseif os(iOS) import UIKit typealias Image  = UIImage typealias ImageName = String#endifextension Image { static var assets_close: Image? { return Image(named: ImageName("close")) }}

使用

// iOSlet closeImage = Image.assets_close// macOSlet closeImage = Image.assets_close

當資源文件有修改時 ?+B build一下就OK了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭州市| 宁武县| 合阳县| 宣威市| 三河市| 南城县| 寿光市| 班玛县| 绥滨县| 屏边| 西乡县| 米林县| 孟连| 景泰县| 青阳县| 南靖县| 南京市| 吉木乃县| 奉节县| 秦安县| 上饶县| 邯郸县| 顺义区| 凤庆县| 宝应县| 云龙县| 济南市| 灵山县| 望都县| 巴南区| 甘洛县| 赞皇县| 阿勒泰市| 玛纳斯县| 华蓥市| 光泽县| 凭祥市| 卓资县| 来凤县| 仁怀市| 云南省|