有没有办法为所有视图设置相同的背景图像?
viewDidLoad:
在所有方法中设置相同的背景。这不酷。
你可以创建一个自定义类,我们称之为 TemplateView,它是 UIView 的子类。然后使用 xib/storyboards 选择控制器视图和身份检查器将 Class 属性更改为“TemplateView”。
随后使用 UIAppearance 将模板视图的背景颜色更改为所需的颜色。
[[TemplateView appearance]setBackgroundColor:[UIColor blueColor]];
这将改变项目中每个模板视图的背景颜色。我认为这是更好的解决方案
[[UIView appearance] setBackgroundColor:[UIColor redColor]];
因为我们不会改变一切的背景,只是我们的自定义类。希望它会有所帮助。
是的,UIAppearance
在 iOS5+ 中使用:
[[UIView appearance] setBackgroundColor:[UIColor redColor]];
注意:UIView
符合协议,但由于某种原因<UIAppearance, UIAppearanceContainer>
没有标记任何属性。UI_APPEARANCE_SELECTOR
我认为这不是一个好主意,但如果你真的想这样做,你可以这样做:
- (void)setBGColor:(UIColor *)color forAllSubviewsOf:(UIView *)view
{
[view setBackgroundColor:color];
for (UIView *sub in view.subviews)
[self setBGColor:color forAllSubviewsOf:sub];
}
我想你可以使用 Method Swizzling 的一些功能来更改所有视图的颜色或图像设置。
检查以下