R.swift 使用快速引用资源文件如图片文案颜色


1.R.Swift的安装配置

  1. 使用的是CocoaPods 安装 R.Swift配置如下 ,执行 pod installR.Swift安装完成

2. 打开项目配置如下:

3.  Run Script 填写 "$PODS_ROOT/R.swift/rswift" generate "$SRCROOT"
4.按住Run Script移动,移到Compile Source项的上方,Check Pods Manifest.lock项的下方。
5.Command + B ,编译一下,编译成功后,在Finder进入到刚刚我们制定的目录中,此时我们会看到一个名为 R.generated.swift 的文件已经创建了,直接把此文件拖入Xcode项目中,记住不要勾选 Copy items if needed 项。
  1. 配置到此完成,我们可以构建自己的项目了

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: 35)
//  使用R.Swift
let nFont = R.font.chalkduster(size: 35)
//  你看,非常神奇,在上面的方法中你不仅可以选择字体类型,还能设置字体大小

Color - 颜色

颜色这里我觉得有必要细讲一下,一个较为庞大的项目,其颜色资源配置也是相应比较复杂,如某些视图的背景颜色、字体的颜色等等,以往我们进行颜色资源的配置,一般会定义一个全局的Config文件或类,里面就存有各种颜色,每种颜色用有意义的名称去标识。R.Swift与其不同的是,它还能有更赞的方式导入颜色资源:

Color Palette

呵呵,这个方式可以说是非常的花式,配合R.Swift使用起来简直6得飞起!
当我们在可视化视图编辑界面(如Storyboard)中为一个视图配置某些颜色时,我们可以进入颜色调色板来选择更多的颜色,如图:

调色板

在其中,我们可以创建自己的调色板,如现在我创建了一个名为 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(本地化字符串)StoryboardsSegues这些资源,其大大提高了iOS开发的资源引用构造效率。

运行时检测

R.Swift提供运行时检测功能,在项目运行的时候能够检测其生成的代码是否和此时项目的资源完全匹配,调用的是R.assertValid(),这个方法在release模式下是不做任何操作的,它只作用于debug(调试)模式,检测的内容为:

  • 是否所有在Storyboard中使用的图片都可用。
  • 是否所有定义在Storyboard中,且需要用标识符去加载的视图控制器都能够成功加载。
    官方建议把这个检测方法放到项目的AppDelegate中。

3.相关链接

R.Swift的Github地址

Github - R.Swift

参考资料

R.Swift官方说明文档


你可能感兴趣的:(swift,国际化,R文件,高效引用)