0

我正在尝试根据条件更改应用程序的主题(UILabel 字体颜色和 UIImageview 的图像)。

我正在检查一个条件,如果它是 0,则应用程序中的整个标签应该是红色,否则它应该是蓝色以及 UIImageview 图像。

有2组图像。根据情况,我还需要更改图像。

任何人都给我一些想法开始..

谢谢..

4

3 回答 3

1

在所有视图控制器的viewWillAppear方法中,遍历子视图,如果视图是类型,UILabel则更改文本颜色。同样对于UIImageView

for (UIView *child in view.subviews)
{
    if([child isKindOfClass:[UILabel class]])
    {
        UILabel *lbl = (UILabel*)child;
        lbl.textColor = [UIColor redColor];
    }
}

我没有尝试过,但认为这应该工作。

于 2013-01-09T10:41:32.047 回答
1

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 文件中,实现顶部所述的方法。

有关类别的更多信息,请参阅本教程Apple 文档

于 2013-01-09T10:08:37.343 回答
0

最好的方法是创建一个单例类,您将在其中创建/更改标签/图像/按钮的属性,任何 UI 对象。

您只需为每个 UI 对象访问此类的方法,然后就完成了。无需一次又一次地编写多行代码。:)

于 2013-01-09T10:22:40.383 回答