ios 中用于设计应用程序的可自定义主题颜色

Customizable Theme Colour to design Application in ios

我需要制作可以根据用户想要的主题进行定制的应用程序设计。

我应该只改变一个地方的颜色,整个应用程序主题都应该改变。

NOTE: Different Theme Contains Different Theme Colours.

我所做的就是制作这样的调色板。

在这张图片中,如果我将 ThemeColor 更改为 Green 而不是 Blue 那么在我使用 ThemeColor 的地方,则应该完成 Green 代替。

但我找不到自定义此颜色的方法。或者任何其他方式,我错过了实现我的要求?

感谢任何帮助..

您应该使用NSUserDefault 来存储当前主题。在您的每个 ViewController 中,从 NSuserdefaultviewwillAppearviewDidAppear 设置背景颜色,因为每次您导航回来时它都会调用。当更改主题时更改 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"];

然后从每个视图控制器,

-(void)viewWillAppear:(BOOL)animated{

NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];

NSData *colorData = [myDefaults objectForKey:@"themeColor"];

UIColor *themeBackGroundColor = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];

self.view.backgroundColor = themeBackGroundColor;

}

希望这会有所帮助:)

在您的代码中创建应用主题颜色,如下所示:

#define APPTHEME_COLOR  [UIColor colorWithRed:238.0/255.0 green:82.0/255.0 blue:87.0/255.0 alpha:1.0]

在您需要的所有控件中使用此主题颜色。更改此 RGB 值后,您的主题也会更改。

再说一句,Storyboard中不需要设置颜色。你必须在代码中到处设置它。

希望对您有所帮助..

为此使用全局色调。 :)

如果您使用目标 iOS 7+ 开发项目并使用默认 iOS UI 对象,您可以通过以下方式管理主题更改 tintColor 属性 的 UIView 并使用 UIAppearance Protocol。

并且,您也可以从storyboard/xib更改tintColor。

最佳教程https://www.raywenderlich.com/108766/uiappearance-tutorial

--- 更新 ---

对于所有 iOS 版本How to create Multiple Themes/Skins for iphone apps?

希望对您有所帮助。 :)