iOS为所有viewcontroller self.view设置背景颜色

时间:2012-11-15 13:34:06

标签: ios view uiviewcontroller

有没有办法为所有视图设置相同的背景图像?

在所有viewDidLoad:方法中设置相同的背景。这不酷。

4 个答案:

答案 0 :(得分:9)

你可以创建一个自定义类,让我们称之为TemplateView,它是UIView的子类。 然后使用xib / storyboards选择控制器视图和身份检查器,将Class属性更改为“TemplateView”。

随后使用UIAppearance将模板视图的背景颜色更改为所需的颜色。

 [[TemplateView appearance]setBackgroundColor:[UIColor blueColor]];

这将更改项目中每个模板视图的背景颜色。 我认为这是比

更好的解决方案
[[UIView appearance] setBackgroundColor:[UIColor redColor]];

因为我们不会改变所有内容的背景,只是我们的自定义类。 希望它会有所帮助。

答案 1 :(得分:2)

是的,在iOS5 +中使用UIAppearance

[[UIView appearance] setBackgroundColor:[UIColor redColor]];

注意:UIView符合<UIAppearance, UIAppearanceContainer>协议,但由于某种原因未将任何属性标记为UI_APPEARANCE_SELECTOR

答案 2 :(得分:0)

我认为这不是一个好主意,但如果你真的想这样做,你可以这样做:

- (void)setBGColor:(UIColor *)color forAllSubviewsOf:(UIView *)view
{
    [view setBackgroundColor:color];
    for (UIView *sub in view.subviews)
        [self setBGColor:color forAllSubviewsOf:sub];
}

答案 3 :(得分:0)

我猜您可以使用Method Swizzling类似功能来更改所有视图颜色或图像设置。

检查以下

https://wiredcraft.com/blog/method-swizzling-ios/