支持的属性
Classy
支持所有 UIAppearance
的属性和方法,还支持一些UIAppearence
没有提到的属性. 因为Classy
的属性名和OC
中的是一致的,所以,其实你不用关心哪个属性对应哪个.
比如下面 UIPageControl
的属性:
1 | @property (nonatomic,retain) UIColor *pageIndicatorTintColor; |
1 | UIPageControl { |
你也可以用折线,两者是完全一样的:
1 | UIPageControl { |
参数
有时候, 你需要给UIApearence
传递参数来完成属性的设置. 比如下面的 UIToolBar
:
1 |
|
对应到 Classy
中,格式是:
1 | <propertyName> [<argumentName> : <argumentValue>, ... ] |
- 参数的顺序无所谓
- 删除 前缀
for
,比如forToolbarPosition
变成toolbarPosition
例如:
1 | UIToolBar |
如果你省略了枚举,那么将使用枚举的默认值:
1 | UIToolBar { |
变量
避免重复的做法总是好的. Classy
允许定义变量来避免重复 .你可以在整个样式表中使用定义的变量.
变量的规则:
- 字母(大小写均可) 或者
$
开头 - 数字 字母
_ -
组成
前缀 $
是帮助区分变量的, 你可以用或者不用, 比如
1 | $brand-color = #e1e1e1 |
等式
变量和样式属性的值可以包含简单的数学表达式,例如:
1 | $corner-radius = 2 + 2$insets = 5, 10, 5, 10UIButton { |
嵌套
Classy允许使用嵌套的方式表达对象属性的嵌套关系,例如:
“view.layer.borderWidth” 或者 “navigationBar.titleTextAttributes.font”
为了避免选择器和嵌套属性的歧义, 我们需要在嵌套的属性名的后面添加 @
符号.
例如:
1 | UINavigationBar { |
- 关于
TextAttributes
的特别示例
如果一个属性是字典,并且这个属性有 “TextAttributes”后缀. 那么这个属性将被认为是CASTextAttributes
{
和 }
是可选的. 例如:
1 | UIView |
基本值类型对照表
逗号分隔符
逗号分隔符也是可选的,也就是说: 12,13
和12 13
是一个效果的.
对象值转换表
枚举值
使用下面的方式匹配枚举值,比如下面的 UIControlStateNormal
,删除枚举名称 UIControlState
,换成小写开头,最后变成了 normal