今天说一个很有用的类——UIApperaance,顾名思义,用这个库可以改变一些类的UI默认值,这样省去了很多重复的工作,也保证了UI风格的统一,
因为 UIApperaance 是一个全局变量,所以我建议大家应该在初始化控件前进行定义,否则可能会失效。
下面说一下简单的用法:
直接使用 appearance 方法获取一个类的实例,通过改变这个类的实例就可以达到修改所有控件的效果。
UITextField *testField = [UITextField appearance];
testField.text = @"test";
testField.backgroundColor = [UIColor whiteColor];
还有一种更加可定制的方法
+ (instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION;
这个方法的使用其实和上面的 apperance 一样,但是后面可以添加类的限制,也就是说这个方法修改的是在后面给出的类中包含的指定控件的属性
UITextField *testField = [UITextField appearanceWhenContainedIn:[UISearchBar class], nil];
testField.textColor = [UIColor redColor];
上面的代码就只修改了UISearchBar中的textfield的默认文字颜色
还有一点需要注意的是,UIApperaance只能修改类中定义的属性,但是不能修改类索遵守的协议中定义的属性