IOS задает цвет фона для всех viewcontroller self.view's

Есть ли способ установить одинаковое фоновое изображение для всех видов?

Настройка того же фона во всех методах viewDidLoad:. Это не круто.

Ответы

Ответ 1

Да, используя UIAppearance в iOS5 +:

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

ПРИМЕЧАНИЕ. UIView соответствует протоколам <UIAppearance, UIAppearanceContainer>, но по каким-либо причинам не помечает никаких свойств как UI_APPEARANCE_SELECTOR.

Ответ 2

Вы можете создать пользовательский класс, назовите его TemplateView, который является подклассом UIView. Затем, используя xib/раскадровки, выберите диспетчер и инспектор удостоверений измените свойство Class на "TemplateView".

Впоследствии с использованием UIAppearance измените цвет фона в виде шаблона на желаемый.

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

Это изменит цвет фона каждого из представлений шаблонов в вашем проекте. Я думаю, что это лучшее решение, чем

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

потому что мы не меняем фона всего, просто наш пользовательский класс. Надеюсь, это поможет.

Ответ 3

Я не думаю, что это хорошая идея, но если вы действительно хотите это сделать, вы можете сделать что-то вроде этого:

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

Ответ 4

Я предполагаю, что вы можете использовать метод Swizzling, чтобы изменить все настройки цвета или изображения.

Проверить

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