Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 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/