夫妇选项...
子类的UI元素,并使用MYUIButton
代替UIButton
,例如,或
看UIAppearance代理 - https://developer.apple.com/reference/uikit/uiappearance - 利用这一点,你可以设置整个应用的默认外观特征。
例子:
[[UIButton appearance] setBackgroundColor:[UIColor yellowColor]];
[[UILabel appearance] setBackgroundColor:[UIColor orangeColor]];
如果包括两行(通常在AppDelegate中所做/ didFinishLaunchingWithOptions),每UIButton
在您的应用程序将有一个黄色的背景,以及每UILabel
会有一个橙色背景。
(但是,你不会看到在Interface Builder这些变化)
编辑:
正如查尔斯在他的评论中提到,您可以创建子类,然后应用外观的变化只这些类。
假设您有3个按钮“类型”,您要将“配色方案”应用于 - 深蓝色,中等蓝色,浅蓝色或深红色,中红色,浅红色等。你可以采取创建DarkUIButton,MediumUIButton和LightUIButton子类的方法。然后,当你加载你的配色方案...
[[DarkUIButton appearance] setBackgroundColor:scheme.darkcolor];
[[MediumUIButton appearance] setBackgroundColor:scheme.mediumcolor];
[[LightUIButton appearance] setBackgroundColor:scheme.lightcolor];
谢谢您的建议。我的意思是,但不是所有的按钮和标签都是橙色的,我有很多不同的颜色。在1的情况下,我的子类赢了什么? –
如果您创建一个UIButton子类 - 例如MyActionButton适用于所有'action'按钮,应该在你的XML/plist中定义一个'action'背景颜色,你可以调用[[MyActionButton appearance] setBackgroundColor:action],这会改变所有'MyActionButton'的背景,以单独修改它们。注意外观只影响不在窗口中的项目。 – CharlesThierry
这取决于您需要多少定制,以及需要影响多少种不同的“事物”。我会更详细地编辑我的答案。 – DonMag