我正在尝试根据条件更改应用程序的主题(UILabel 字体颜色和 UIImageview 的图像)。
我正在检查一个条件,如果它是 0,则应用程序中的整个标签应该是红色,否则它应该是蓝色以及 UIImageview 图像。
有2组图像。根据情况,我还需要更改图像。
任何人都给我一些想法开始..
谢谢..
我正在尝试根据条件更改应用程序的主题(UILabel 字体颜色和 UIImageview 的图像)。
我正在检查一个条件,如果它是 0,则应用程序中的整个标签应该是红色,否则它应该是蓝色以及 UIImageview 图像。
有2组图像。根据情况,我还需要更改图像。
任何人都给我一些想法开始..
谢谢..
在所有视图控制器的viewWillAppear
方法中,遍历子视图,如果视图是类型,UILabel
则更改文本颜色。同样对于UIImageView
for (UIView *child in view.subviews)
{
if([child isKindOfClass:[UILabel class]])
{
UILabel *lbl = (UILabel*)child;
lbl.textColor = [UIColor redColor];
}
}
我没有尝试过,但认为这应该工作。
UILabel
您可以添加一个应该具有该方法的类别
-(UIColor *)labelColor {
//depend on ur condition, return the color
}
在所有标签声明中,将字体颜色设置为
lbl.textColor = [lbl labelColor];
同样对于UIImageView
。
更新:
通过 Xcode 创建一个 Cocoa-Touch Objective C 类别类型的新文件。
您可以将文件命名为UILabel+Color
,界面将类似于
@interface UILabel (Color)
-(UIColor *)labelColor;
@end
在 .m 文件中,实现顶部所述的方法。
最好的方法是创建一个单例类,您将在其中创建/更改标签/图像/按钮的属性,任何 UI 对象。
您只需为每个 UI 对象访问此类的方法,然后就完成了。无需一次又一次地编写多行代码。:)