安装
使用CocoaPods来对R.Swift进行安装:
pod 'R.swift'
配置
- 进入项目的配置界面,在左边的TARGETS项下面选择我们的项目,并在右边点击
Build Phases
这个tab。 - 进入
<Build Phases>
这个tab后,我们看到左上角有一个"+"按钮,点击并在弹出的选项卡中选择New Run Script Phase
。 - 我们会看到界面的下方多出了一个
Run Script
项,展开它,并在脚本输入区域输入"\$PODS_ROOT/R.swift/rswift"
"$SRCROOT" (第二对双引号括起来所代码的是项目的根目录,你也可以放到根目录下的其他目录中,只需将其修改为"$SRCROOT/XXX",XXX为目标目录名)。
4.我们按住新建的这个Run Script
项向上移动,移到Compile Source
项的上方,不过也要保证此时它也在Check Pods Manifest.lock
项的下方。 - Command + B,编译一下,编译成功后,在Finder进入到刚刚我们制定的目录中,此时我们会看到一个名为R.generated.swift的文件已经创建了,直接把此文件拖入Xcode项目中,记住不要勾选Copy items if needed项。
- 配置到此完成,我们可以构建自己的项目了
使用
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: 35)
// 使用R.Swift
let nFont = R.font.chalkduster(size: 35)
// 你看,非常神奇,在上面的方法中你不仅可以选择字体类型,还能设置字体大小
Color - 颜色
把.clr文件拖入项目中即可使用颜色配置
let appRedColor = R.color.myAppColor.red()
Nibs
不使用R.swift
let nameOfNib = "CustomView"
let customViewNib = UINib(nibName: "CustomView", bundle: nil)
let rootViews = customViewNib.instantiate(withOwner: nil, options: nil)
let customView = rootViews[0] as? CustomView
let viewControllerWithNib = CustomViewController(nibName: "CustomView", bundle: nil)
使用 R.swift
let nameOfNib = R.nib.customView.name
let customViewNib = R.nib.customView()
let rootViews = R.nib.customView.instantiateWithOwner(nil)
let customView = R.nib.customView.firstView(owner: nil)
let viewControllerWithNib = CustomViewController(nib: R.nib.customView)
Localized strings
不使用R.swift
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)