18

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

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

4

4 回答 4

11

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

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

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

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

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

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

于 2013-06-26T20:22:08.890 回答
2

是的,UIAppearance在 iOS5+ 中使用:

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

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

于 2012-11-15T13:49:20.303 回答
0

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

- (void)setBGColor:(UIColor *)color forAllSubviewsOf:(UIView *)view
{
    [view setBackgroundColor:color];
    for (UIView *sub in view.subviews)
        [self setBGColor:color forAllSubviewsOf:sub];
}
于 2012-11-15T13:50:00.883 回答
0

我想你可以使用 Method Swizzling 的一些功能来更改所有视图的颜色或图像设置。

检查以下

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

于 2017-05-01T08:10:23.717 回答