ios 中用于设计应用程序的可自定义主题颜色
Customizable Theme Colour to design Application in ios
我需要制作可以根据用户想要的主题进行定制的应用程序设计。
我应该只改变一个地方的颜色,整个应用程序主题都应该改变。
NOTE: Different Theme Contains Different Theme Colours.
我所做的就是制作这样的调色板。
在这张图片中,如果我将 ThemeColor
更改为 Green
而不是 Blue
那么在我使用 ThemeColor
的地方,则应该完成 Green
代替。
但我找不到自定义此颜色的方法。或者任何其他方式,我错过了实现我的要求?
感谢任何帮助..
您应该使用NSUserDefault
来存储当前主题。在您的每个 ViewController
中,从 NSuserdefault
或 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"];
然后从每个视图控制器,
-(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?
希望对您有所帮助。 :)
我需要制作可以根据用户想要的主题进行定制的应用程序设计。
我应该只改变一个地方的颜色,整个应用程序主题都应该改变。
NOTE: Different Theme Contains Different Theme Colours.
我所做的就是制作这样的调色板。
在这张图片中,如果我将 ThemeColor
更改为 Green
而不是 Blue
那么在我使用 ThemeColor
的地方,则应该完成 Green
代替。
但我找不到自定义此颜色的方法。或者任何其他方式,我错过了实现我的要求?
感谢任何帮助..
您应该使用NSUserDefault
来存储当前主题。在您的每个 ViewController
中,从 NSuserdefault
或 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"];
然后从每个视图控制器,
-(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?
希望对您有所帮助。 :)