我怎样才能通过编程改变全局色调颜色?

6
我的项目需要在两个不同的全局色调值之间切换。我该如何通过编程实现这一点?
2个回答

8

UIAppearance就是答案!它可以设置该类及其子类的所有对象属性。

[[UIView appearance] setTintColor:(UIColor *)]

您也可以更改所有按钮的backgroudColor
[[UIButton appearance] setBackgroundColor:(UIColor *)]

推荐使用UIAppearance,它可以改变所有子类的色调颜色,例如按钮、工具栏等。 - Gonzo
@CEAFDC:如果未明确设置,则任何 UIView 子类都将继承其父视图的 tintColor - Scott Berrevoets
2
该方法不会在创建控件后更改现有控件的色调颜色。如果@jimbob需要在运行时更改色调颜色,则设置窗口的色调颜色是更好的选择。 - Léo Natan
4
UIViewtintColor没有UI_APPEARANCE_SELECTOR。请查看UIView.h - JRG-Developer
3
好的,现在我相信了。谢谢 :) UIWindow的tintColor是正解。 - Gonzo
显示剩余3条评论

8
改变应用程序的 UIWindow 的色调颜色。您可以使用 [[UIApplication sharedApplication] keyWindow],但更好的方法是使用 [[UIApplication sharedApplication] delegate].window

1
这是我写的代码: UIWindow* mWindow = [[UIApplication sharedApplication] keyWindow]; mWindow.tintColor = [UIColor themeColorNamed:@"themeColour"];CEAFDC也提供了一个好答案。哪个是最正确的? - jimbob
你说你需要在运行时更改色调,这种情况下这是一个更好的解决方案。 - Léo Natan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接