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/