iOS应用程序,根据用户选择更改整个应用程序颜色主题(背景,uibutton,图标颜色...)

时间:2014-04-27 15:30:17

标签: ios objective-c

我要求根据用户选择制作具有颜色主题的应用程序 用户在开始时选择一种颜色(8种可用颜色),该颜色将应用于整个应用程序(背景颜色,按钮,图标......)

如果我为每种颜色创建图像,该应用程序将拥有大量图像,并且可能很大,而且这种方法看起来不是很好。

我尝试导入1种颜色的图像,然后根据用户选择的颜色更改图像颜色,但是像滑块这样的控件出现问题,而且更改的图像看起来不像photoshop那样

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

将所有图像设为一种颜色(可能是黑色),然后让用户选择颜色并将其保存为用户默认值。将需要获取主题的所有项目链接到用户默认值的颜色。然后使用UIImageView的tintColor属性来设置您的应用程序。

为任何UIImageView着色的方法

- (void)tintImageView:(UIImageView *)imageView withTint:(UIColor *)tintColor
{
    imageView.image = [imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

    [imageView setTintColor:tintColor];
}

用于淡化Button的示例:

[self tintImageView:self.button.imageView withTint:[UIColor blueColor]];

用于着色UIImageView的示例:

[self tintImageView:self.imageView withTint:[UIColor blueColor]];

答案 1 :(得分:2)

如果您使用的是iOS7,则可以利用tintColor属性。 对于图像,您需要确保它们是使用模板选项创建的。 请查看此明确的教程,该教程将指导您将主题应用于应用中的不同类型的控件:Theming iOS Applications

您可能也有兴趣尝试Pixate Freestyle,它基本上允许您将类似css的样式应用到您的iOS应用程序,这是一个非常酷的工具,我发现它也很容易使用。