可定制的主题颜色来devise在iOS应用程序

我需要使应用程序devise,可以根据用户想要的主题定制。

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

注:不同的主题包含不同的主题颜色。

我所做的是做这样的调色板。

设置ThemeColors命名的调色板

在这个图像中,如果我将ThemeColor更改为Green而不是Blue那么在哪里使用过ThemeColor ,那么应该将它改为Green

但我无法find一种方法来定制这种颜色。 或者其他任何方式,我错过了达到我的要求?

任何帮助赞赏..

如果您使用目标iOS 7+开发项目并使用默认iOS UI对象,则可以通过更改UIView的tintColor属性并使用UIAppearance协议来pipe理主题。

是的 ,你也可以从storyboard / xib中更改tintColor。

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

更新

对于所有iOS版本 : 如何为iPhone应用程序创build多个主题/皮肤?

我希望这能帮到您。 🙂

在代码中创build一个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中设置它。

希望能帮助到你..

你应该使用NSUserDefault来存储当前的主题。 在你的每一个ViewController ,从viewwillAppearviewDidAppear NSuserdefault设置背景颜色,因为每次你浏览的时候都会调用。 当更改主题更改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; } 

希望这会帮助:)

为此,请使用全局色调颜色。 🙂