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

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

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

是的,在iOS5 +中使用UIAppearance

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

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

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

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

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

这将改变项目中每个模板视图的背景颜色。 我认为这是比较好的解决scheme

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

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

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

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

我猜你可以使用方法Swizzling类的一些function来改变所有的意见颜色或图像设置。

检查下面

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