R.Swift優雅加載資源文件

在新的項目中,接觸到了一個很不錯的框架R.swift,能夠幫助更方便安全的使用資源文件,相信已經使用過的或者尚未接觸過的,一旦使用過了解過它,會愛上這個框架工具!json

1、R.swift特色

  • 當項目build以後,R.swift開始運行,也就是說添加完圖片等資源文件時,build一下,R.swift第三方庫就會設置好剛剛添加的資源.
  • 加入的資源文件在build後自動在R.generated.swift文件中按照類型生成結構體.
  • 強類型,不須要類型判斷和轉換,自動返回對應類型.
  • 支持了多種資源類型.
  • 避免了資源名稱拼寫錯誤.

 

2、安裝

  1. 添加pod 'R.swift'到你的Podfile文件中,緊接着運行pod install
  2. 打開工程文件,點擊工程文件名稱,選擇TARGETS,點擊Build Phases,在點擊左上角的「+」添加New Run Script Phas

  3. 打開並複製代碼放入下面:"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/R.generated.swift"swift

  4. 拖拽R.generated.swift文件到項目中.安全

 

3、具體使用

1. 圖片-images

原生寫法框架

let sIcon = UIImage(named: "settings-icon")

使用R.swift工具

func icon() -> UIImage? {
        switch self {
        case .sourceRegulator:
            return R.image.home_SourceRegulatory()
        case .regulation:
            return R.image.home_regulationIcon()
        case .broker:
            return R.image.home_brokerIcon()
        case .engine:
            return R.image.home_engineIcon()
        case .falseBroker:
            return R.image.home_falseBrokerIcon()
        case .spread:
            return R.image.home_spredIcon()
        }
    }

 

2. 文件-Files

原始寫法字體

let plistURL = Bundle.main.url(forResource: "Book", withExtension: "plist")
let jsonPath = Bundle.main.path(forResource: "data", ofType: "json")

使用R.swift後ui

let plistURL = R.file.bookPlist()
let jsonPath = R.file.DataJson.path()

 

3.字體-Fonts

原始用法url

let lightFontTitle = UIFont(name: "", size: 22)chalkduster

使用R.swiftspa

R.font.chalkduster(size: 35)

 

4.Localized strings

原始寫法code

let welcomeMessage = NSLocalizedString("welcome.message", comment: "")
let settingsTitle = NSLocalizedString("title", tableName: "Settings", comment: "")

// Formatted strings
let welcomeName = String(format: NSLocalizedString("welcome.withName", comment: ""), locale: NSLocale.current, "Alice")

// Stringsdict files
let progress = String(format: NSLocalizedString("copy.progress", comment: ""), locale: NSLocale.current, 4, 23)

使用R.swift

// Localized strings are grouped per table (.strings file)
let welcomeMessage = R.string.localizable.welcomeMessage()
let settingsTitle = R.string.settings.title()

// Functions with parameters are generated for format strings
let welcomeName = R.string.localizable.welcomeWithName("Alice")

// Functions with named argument labels are generated for stringsdict keys
let progress = R.string.localizable.copyProgress(completed: 4, total: 23)

 

上面就是本人項目常用到的,固然還有其餘的用法和用處,不過,經過R.swift已經大大的方便咱們平常開發,但願你們在項目中儘早的使用R.swift這個第三方庫.

相關文章
相關標籤/搜索