Come rimuovere la sfumatura di default su UINavigationBar? Quale proprietà ho impostato per fare questo?Rimuovi gradiente su UINavigationBar
5
A
risposta
23
È possibile rimuovere il gradiente e impostare il proprio colore solido inserendo questo codice nella classe con la barra di spostamento. Puoi cambiare l'UIColor in qualsiasi colore tu abbia bisogno. Nota che questo codice deve essere al di fuori di un'altra implementazione, quindi qualunque file .m lo metti prima di @implement della classe già implementata in quel file.
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
UIColor *color = [UIColor blueColor];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColor(context, CGColorGetComponents([color CGColor]));
CGContextFillRect(context, rect);
}
@end
Nella mia applicazione, ho due UINavigationBars. Voglio uno per mantenere il gradiente, e voglio che uno non abbia il gradiente. Come potrei farlo? (questo codice funziona a proposito, ma rende entrambe le barre prive di sfumature) – CodeGuy
Per avere i due diversi comportamenti che stai cercando dovrai avere due sottoclassi personalizzate di UINavigationBar. In una sottoclasse si sostituisce il metodo drawRect come ho fatto nell'implementazione di cui sopra. Nell'altra sottoclasse non si definisce il metodo drawRect e non si sostituisce l'effetto sfumatura originale. fammi sapere se lo fai funzionare. – Nitrex88
Sono passati alcuni mesi, ma c'è qualche possibilità che tu possa contrassegnare la mia risposta come corretta? Ho bisogno di una certa reputazione in modo da poter mettere una taglia su una delle mie domande ... grazie – Nitrex88