scrittura - testo sottolineato iphone




Come cambiare il colore del testo sugli elementi del pulsante UINavigationBar (6)

Ho un UINavigationController e l'ho cambiato in bianco usando la proprietà Tint della barra di navigazione in Interface Builder. Ma il testo nei pulsanti e il titolo è ancora il colore predefinito, bianco, e così si perde sullo sfondo bianco. Qualcuno sa come aggirare questo?


Qui il modo pulito (affidandosi all'API pubblica) per fare questo IMHO: dovresti usare la proprietà titleView del navigationItem per applicare la tua UILabel su cui personalizzerai il textColor


UILabel* lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
lbl.textAlignment=UITextAlignmentCenter;
lbl.backgroundColor=[UIColor clearColor];
lbl.textColor=[UIColor colorWithRed:0.18 green:0.2 blue:0.56 alpha:1];
theControllerOnWhichYouWantToHaveATitleWithYourOwnColor.navigationItem.titleView=lbl;
[lbl release];


for (id subView in theNavigationBar.subviews) {
    if ([subView isKindOfClass:[UIButton class]]) {
        [(UIButton *)subView setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [(UIButton *)subView setTitleShadowColor:[UIColor clearColor] forState:UIControlStateNormal];
    }

}

puoi cambiare l'aspetto del titolo aggiungendo un'etichetta nella barra di navigazione come segue.

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 35)];
label.backgroundColor = [UIColor clearColor];
label.textAlignment = UITextAlignmentCenter;
label.textColor =[UIColor whiteColor];
label.text=self.title;
self.navigationItem.titleView = viewLabel;
[label release]; 

Ecco un modo:

[[theNavigationBar.subviews objectAtIndex:1] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[[theNavigationBar.subviews objectAtIndex:2] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

Tuttavia, ENORME, avvertimento. È molto probabile che si interrompa in una versione futura del sistema operativo e non è consigliato.

Per lo meno dovresti eseguire molti test e assicurarti che le tue assunzioni sul layout secondario della barra di navigazione siano corrette.


Non è possibile iterare il contenuto della vista UINavigationBar per trovare i pulsanti in awakeFromNib?


O usi la propria sottoclasse di elementi della barra dei pulsanti con un setter che specifichi, lus non è iPhone os 3 supponiamo di mostrare il colore del testo per ogni pulsante





cocoa-touch