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

and*_*sha 16 view uiviewcontroller ios

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

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

Jan*_*ski 10

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

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

 [[TemplateView appearance]setBackgroundColor:[UIColor blueColor]];
Run Code Online (Sandbox Code Playgroud)

这将更改项目中每个模板视图的背景颜色.我认为这比解决方案更好

[[UIView appearance] setBackgroundColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)

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

  • 这是一个比接受的答案更好的答案。给所有 UIViews 一个背景会产生许多意想不到的副作用。 (2认同)

Cfr*_*Cfr 2

UIAppearance是的,在iOS5+中使用:

[[UIView appearance] setBackgroundColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)

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

  • true,但这将为 UIView 子类(几乎所有内容)的所有子视图设置背景,包括按钮、标签等...... (19认同)