2012-11-15 13 views
13

Czy istnieje sposób ustawienia tego samego tła dla wszystkich widoków?Ustawienia koloru tła iOS dla wszystkich kontrolerów widoku self.view's

Ustawienie tego samego tła we wszystkich metodach viewDidLoad:. To nie jest fajne.

+0

To tylko jeden wiersz kodu, wystarczy skopiować i wkleić. Ile wyświetleń masz? – woz

+0

Pętla przez wszystkie subviews i zastosowanie tła to jedyny sposób, jaki mogę wymyślić. – chrislhardin

+0

czy jesteś pewien, że nie chcesz, aby ich kolor tła był przezroczysty, i ustawić kolor dla widoku kontenera? –

Odpowiedz

3

Tak, używając UIAppearance w iOS5 +:

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

UWAGA: UIView zgodny <UIAppearance, UIAppearanceContainer> protokołów, ale nie oznaczyć wszelkie właściwości jak UI_APPEARANCE_SELECTOR z jakiegoś powodu.

+17

prawda, ale to ustawi tło dla wszystkich subviews, które podklasę UIView (prawie wszystko), w tym przyciski, etykiety itp. ... – jimpic

0

Nie sądzę, że jest to dobry pomysł, ale jeśli naprawdę chcesz to zrobić, można zrobić coś takiego:

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

można utworzyć niestandardową klasę, nazwijmy go do TemplateView, który jest podklasą UIView. Następnie korzystając z xib/storyboardów wybierz widok kontrolera, a inspektor tożsamości zmień właściwość Class na "TemplateView".

Następnie za pomocą UIAppearance zmień kolor tła widoku szablonu na pożądany.

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

To spowoduje zmianę koloru tła każdego z widoków szablonu w projekcie. myślę, że to lepsze rozwiązanie niż

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

ponieważ nie zmienić tło wszystkiego, po prostu nasz zwyczaj klasa. Mam nadzieję, że to pomoże.

+0

To jest znacznie lepsza odpowiedź niż zaakceptowana odpowiedź. Nadanie wszystkim tło UIView daje wiele nieoczekiwanych skutków ubocznych. – StijnSpijker

Powiązane problemy