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.
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.
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.
prawda, ale to ustawi tło dla wszystkich subviews, które podklasę UIView (prawie wszystko), w tym przyciski, etykiety itp. ... – jimpic
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];
}
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.
To jest znacznie lepsza odpowiedź niż zaakceptowana odpowiedź. Nadanie wszystkim tło UIView daje wiele nieoczekiwanych skutków ubocznych. – StijnSpijker
Domyślam się, że można użyć metody Swizzling rodzaj niektóre funkcje, aby zmienić wszystkie ustawienia kolorów lub obrazu.
Sprawdź następujące
To tylko jeden wiersz kodu, wystarczy skopiować i wkleić. Ile wyświetleń masz? – woz
Pętla przez wszystkie subviews i zastosowanie tła to jedyny sposób, jaki mogę wymyślić. – chrislhardin
czy jesteś pewien, że nie chcesz, aby ich kolor tła był przezroczysty, i ustawić kolor dla widoku kontenera? –