Is there a way to set same background image for all views?
Setting same background in all viewDidLoad:
methods. It\'s not cool.
I guess you can use Method Swizzling kind some feature to change all views colour or image setting.
Check following
https://wiredcraft.com/blog/method-swizzling-ios/
Yes, using UIAppearance in iOS5+:
[[UIView appearance] setBackgroundColor:[UIColor redColor]];
NOTE: UIView
conforms to <UIAppearance, UIAppearanceContainer>
protocols but does not mark any properties as UI_APPEARANCE_SELECTOR
for some reason.
I don't think this is a good idea, but if you really want to do this, you could do something like this:
- (void)setBGColor:(UIColor *)color forAllSubviewsOf:(UIView *)view
{
[view setBackgroundColor:color];
for (UIView *sub in view.subviews)
[self setBGColor:color forAllSubviewsOf:sub];
}
You can create a custom class, let's call it a TemplateView, which is subclass of UIView. Then using xib/storyboards select the controller view and identity inspector change the Class property to 'TemplateView'.
Subsequently using an UIAppearance change the background color of the template view to the desired one.
[[TemplateView appearance]setBackgroundColor:[UIColor blueColor]];
That will change the background color of each of the template views in your project. I think it's better solution than
[[UIView appearance] setBackgroundColor:[UIColor redColor]];
because we don't change the background of everything, just our custom class. Hope it will help.