我需要根据用户想要的主题制作可自定义的应用程序设计。
我只应该在一个地方改变颜色,并且应该改变整个应用程序主题。
注意:不同的主题包含不同的主题颜色。
我所做的是制作这样的调色板。
在此图片中,如果我将ThemeColor
更改为Green
而不是Blue
,那么我曾使用过ThemeColor
,那么就应该Green
而不是。
但我无法找到定制这种颜色的方法。或者任何其他方式,我错过了实现我的要求?
任何帮助表示赞赏..
答案 0 :(得分:1)
您应该使用NSUserDefault
来存储当前主题。在来自ViewController
或NSuserdefault
的{{1}}的每个viewwillAppear
设置背景颜色中,因为每次导航时它都会调用。当更改主题更改viewDidAppear
中的颜色时,您的每个userdefault
都会获得该颜色。
在评论中提出更新:
你可以存储这样的颜色,
viewcontroller
然后从每个视图控制器
NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
UIColor *currentThemeColor = [UIColor redColor]; //any color instead of red which user change from settingviewcontroller
NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:currentThemeColor];
[myDefaults setObject:colorData forKey:@"themeColor"];
希望这会有所帮助:)
答案 1 :(得分:1)
在代码中创建App主题颜色,如下所示:
#define APPTHEME_COLOR [UIColor colorWithRed:238.0/255.0 green:82.0/255.0 blue:87.0/255.0 alpha:1.0]
在您需要的所有控件中使用此主题颜色。更改此RGB值后,您的主题将会更改。
还有一件事要说,你不需要在Storyboard中设置颜色。你必须在Code中设置它。
希望有所帮助......
答案 2 :(得分:1)
如果您使用目标 iOS 7 + 开发项目并使用默认iOS UI对象,则可以通过更改UIView的 tintColor 属性并使用来管理主题UIAppearance 协议。
是,您也可以从 storyboard / xib 更改tintColor。
此最佳教程:https://www.raywenderlich.com/108766/uiappearance-tutorial
--- 更新 ---
适用于所有iOS版本:How to create Multiple Themes/Skins for iphone apps?
我希望这会对你有所帮助。 :)
答案 3 :(得分:0)
为此目的使用全局色调颜色。 :)