1.R.Swift的安裝配置
- 使用的是 CocoaPods 安裝 R.Swift配置如下 ,執行 pod install 後 R.Swift 安裝完成
R.swift 使用快速引用資源檔案如圖檔文案顔色
2. 打開項目配置如下:
R.swift 使用快速引用資源檔案如圖檔文案顔色
3. Run Script 填寫 "$PODS_ROOT/R.swift/rswift" generate "$SRCROOT"
R.swift 使用快速引用資源檔案如圖檔文案顔色
4.按住 Run Script 移動,移到 Compile Source 項的上方, Check Pods Manifest.lock 項的下方。
R.swift 使用快速引用資源檔案如圖檔文案顔色 5.Command + B
,編譯一下,編譯成功後,在Finder進入到剛剛我們制定的目錄中,此時我們會看到一個名為
R.generated.swift
的檔案已經建立了,直接把此檔案拖入Xcode項目中,記住不要勾選
Copy items if needed
項。
R.swift 使用快速引用資源檔案如圖檔文案顔色
R.swift 使用快速引用資源檔案如圖檔文案顔色 - 配置到此完成,我們可以建構自己的項目了
2.R.Swift的使用
在這裡要說明一下,每當我們修改了資源,我們需要 Command + B 來編譯一下項目進而讓 R.Swift 自動進行配置更新。
下面就來用執行個體示範一下 R.Swift 的使用,并與原生的API進行比對:
Image - 圖檔
// 不使用R.Swift
let pImage = UIImage(named: "image_test")
// 使用R.Swift
let nImage = R.image.image_test()
File - 資料檔案
// 不使用R.Swift
let pFile = NSBundle.mainBundle().pathForResource("DataFile", ofType: "json")
// 使用R.Swift
let nFile = R.file.dataFileJson.path()
Font - 字型
// 不使用R.Swift
let pFont = UIFont(name: "chalkduster", size: )
// 使用R.Swift
let nFont = R.font.chalkduster(size: )
// 你看,非常神奇,在上面的方法中你不僅可以選擇字型類型,還能設定字型大小
Color - 顔色
顔色這裡我覺得有必要細講一下,一個較為龐大的項目,其顔色資源配置也是相應比較複雜,如某些視圖的背景顔色、字型的顔色等等,以往我們進行顔色資源的配置,一般會定義一個全局的Config檔案或類,裡面就存有各種顔色,每種顔色用有意義的名稱去辨別。 R.Swift 與其不同的是,它還能有更贊的方式導入顔色資源:
Color Palette
呵呵,這個方式可以說是非常的花式,配合 R.Swift 使用起來簡直6得飛起!
當我們在可視化視圖編輯界面(如Storyboard)中為一個視圖配置某些顔色時,我們可以進入顔色調色闆來選擇更多的顔色,如圖:
R.swift 使用快速引用資源檔案如圖檔文案顔色
R.swift 使用快速引用資源檔案如圖檔文案顔色
調色闆
在其中,我們可以建立自己的調色闆,如現在我建立了一個名為 MyAppColor 的調色闆:
自定義調色闆
這個自定義的調色闆是不局限于現在的項目 ,以後我們建立的每一個項目都可以使用這個調色闆。如果你的UI設計師夠醒目的話,他也可以給我們提供一個設計師調好顔色的調色闆,現在問題來了,設計師在他的電腦裡定義好了調色闆,怎麼share出去呢?其實我們每自定義一個調色闆,它都會以二進制檔案的形式儲存在電腦中,位置在 ~/Library/Colors/ (隐藏檔案目錄,要通路它要不取消Finder隐藏,要不直接控制台 open 跳進來),檔案的名字為 調色闆名.clr ,把它直接copy下來就行。 R.Swift 能夠非常花式地使用調色闆,有多花式?
就現在來說,我直接把我建立的調色闆的檔案 MyAppColor.clr 拖進項目中, Command + B 編譯下,然後,我現在可以這樣子得到顔色了:
let appRedColor = R.color.myAppColor.red()
以上說明了使用 R.Swift 進行各種資源的引用構造,除了上面的資源外, R.Swift 還能作用于 Localized string(本地化字元串) 、 Storyboards 、 Segues 這些資源,其大大提高了iOS開發的資源引用構造效率。
運作時檢測
R.Swift 提供運作時檢測功能,在項目運作的時候能夠檢測其生成的代碼是否和此時項目的資源完全比對,調用的是 R.assertValid() ,這個方法在 release 模式下是不做任何操作的,它隻作用于 debug(調試) 模式,檢測的内容為:
- 是否所有在
中使用的圖檔都可用。Storyboard
- 是否所有定義在
Storyboard
中,且需要用辨別符去加載的視圖控制器都能夠成功加載。
官方建議把這個檢測方法放到項目的
中。AppDelegate
3.相關連結
R.Swift的Github位址
Github - R.Swift
參考資料
R.Swift官方說明文檔