5
Jak usunąć domyślny gradient na UINavigationBar? Jaką właściwość mam ustawić, aby to zrobić?Usuń gradient na UINavigationBar
Jak usunąć domyślny gradient na UINavigationBar? Jaką właściwość mam ustawić, aby to zrobić?Usuń gradient na UINavigationBar
Możesz usunąć gradient i ustawić własny jednolity kolor, umieszczając ten kod w klasie z paskiem nawigacji. Możesz zmienić UIColor na dowolny kolor, który potrzebujesz. Zauważ, że ten kod musi znajdować się poza inną implementacją, więc jakikolwiek plik .m umieścisz go przed @impozycją klasy już zaimplementowanej w tym pliku.
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
UIColor *color = [UIColor blueColor];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColor(context, CGColorGetComponents([color CGColor]));
CGContextFillRect(context, rect);
}
@end
W mojej aplikacji mam dwa paski UINavigationBar. Chcę, aby jeden zachował gradient, a ja chcę, aby jeden nie miał gradientu. Jak mogłem to zrobić? (ten kod działa przy okazji, ale powoduje, że oba paski nie mają gradientu) – CodeGuy
Aby mieć dwa różne zachowania, których szukasz, będziesz potrzebować dwóch niestandardowych podklas UINavigationBar. W jednej podklasie nadpisujesz metodę drawRect tak jak w powyższej implementacji. W drugiej podklas po prostu nie definiujesz metody drawRect i nie zastąpisz oryginalnego efektu gradientu. daj mi znać, jeśli sprawisz, że działa. – Nitrex88
Minęło już kilka miesięcy, ale czy jest jakaś szansa, aby zaznaczyć swoją odpowiedź jako poprawną? Potrzebuję dobrej reputacji, więc mogę dać nagrodę za jedno z moich pytań ... dziękuję – Nitrex88