iOS 实现快速切换主题颜色

主题颜色非常熟悉,许多 App 都是可以自定义主题颜色的,给 App 添加自定义主题颜色功能,可以给用户一个良好的选择,一方面也能很好地留住用户。

这里给大家推荐一款简单而实用的主题更换第三方库 PYTheme

Github地址:https://github.com/iphone5solo/PYTheme

PYTheme 有很好的特性:

  • 轻量级
  • 低耦合
  • 自动管理内存
  • 支持动态更换主题颜色
  • 支持动态更换主题图片
  • 支持 CocoaPods

使用起来也非常的简单,容易理解。设置主题颜色的时候可以根据各种需要不同控件等来选择各种设定方法;
设定方法可以:

  • 直接通过属性
1
2
// 按钮的背景色添加到主题色池中
[button py_addToThemeColorPool:@"backgroundColor"];
  • 通过设置方法并且传入方法对应参数数组,参数中直接含有颜色参数
1
2
3
// 设置按钮选中时字体颜色添加到主题色池中
[button py_addToThemeColorPoolWithSelector:@selector(setTitleColor:forState:)
objects:@[PYTHEME_THEME_COLOR, @(UIControlStateSelected)]];
  • 当方法参数中没有直接包含颜色参数,而是经过包装(如使用NSDictionary包装)
1
2
3
4
5
// 设置tabBar选中时字体颜色添加到主题色池中
NSMutableDictionary *attrSel = [NSMutableDictionary dictionary];
attrSel[NSForegroundColorAttributeName] = PYTHEME_THEME_COLOR;
[childController.tabBarItem py_addToThemeColorPoolWithSelector:@selector(setTitleTextAttributes:forState:)
objects:@[attrSel, @(UIControlStateSelected)]];

设置主题色

1
2
// 设置主题色为红色
[self py_setThemeColor:[UIColor redColor]];

更多介绍请在作者 Github 中查看.

分享到 评论