根据设置主题更改刷新UILabel属性

时间:2013-12-03 06:08:01

标签: oop uilabel subclassing setneedsdisplay

我有一个自定义UILabel类,在我的mainViewController中使用。

我有一个设置屏幕,根据设置屏幕中选择的颜色,mainViewController中使用的所有UILabel都必须更新所选的颜色。

让我说我的UILabel颜色在主屏幕上是黑色的,我进入设置屏幕并将颜色更改为白色,当我回到主屏幕时,我希望所有子类标签将标签颜色更新为白色。 / p>

我想在customUILabel实现类中而不是在mainViewController中更新此颜色,因为此标签已在我的应用程序中的其他100个地方使用。我需要单点代码更改来更新颜色。

我尝试在viewController的viewWillAppear中使用setNeedsDisplay,它不起作用!

有关实施此实施的任何想法吗?

1 个答案:

答案 0 :(得分:0)

当您更改颜色时,您在NSString中设置颜色的名称并将其保存在NSUserDefaults中。

要保存它: NSString * colorName = K_COLOR_RED; [[NSUserDefaults standardUserDefaults] setValue:colorName forKey:K_KEY_COLOR_LABEL];

要检索它: [[NSUserDefaults standardUserDefaults] stringForKey:K_KEY_COLOR_LABEL];

颜色K_COLOR_RED和K_KEY_COLOR_LABEL必须存在于Global.h !!

这对我来说很好!