2012-03-21 10 views
8

sto amando essere in grado di utilizzare un proxy aspetto nel mio iOS5 app per personalizzare gli elementi dell'interfaccia utente navigationController a livello di sistema, però:Alternative alla delega aspetto per UILabel celle di tabella SetFont

ho un sacco di nidificato tabelle nella mia app, di cui mi piacerebbe poter cambiare il carattere su tutte le celle della tabella. Sono principalmente creati staticamente. Ho inserito alcune celle di generazione all'interno di una classe, essendo state lette da un array, ma il problema principale risiede in una sezione di contenuti di grandi dimensioni che ho presentato in Interface Builder. IB non sembra avere l'opzione per l'impostazione del carattere di massa.

Mi chiedevo se qualcuno potesse aiutarmi a trovare un modo per impostare tutti i caratteri UITableCell in una volta sola?

Forse qualcosa di simile:

[[UILabel appearance] setFont:[UIFont fontWithName:@"Times" size:17.00]; 

risposta

8

È possibile utilizzare appearanceWhenContainedIn: per restringere che UIViews desideri impostare l'aspetto per.

Nel tuo esempio, provare:

[[UILabel appearanceWhenContainedIn:[UITableViewCell class], nil] 
      setFont:[UIFont fontWithName:@"Times" size:17.00]]; 
+0

Grazie mille - un buon modo per concentrarsi su elementi specifici - Apprezzo il tuo feedback! – Sarreph

+0

Dopo una lunga e accesa discussione con un collega, mi ha correttamente informato che UILabel (tra le altre classi che * rispondono * a "appearanceWhenContainedIn:") non è conforme al protocollo 'UIAppearance', quindi anche se questo * funziona * è senza documenti e quindi non essere invocato). – NSTJ

+0

@NSTJ 'UILabel' eredita da' UIView', che è conforme a 'UIAppearance'; ergo 'UILabel' * fa * conforme a' UIAppearance' ~~, e questo metodo può essere invocato ~~. – Austin

2

In realtà, no. Non è valido utilizzare UIAppearance per disegnare un UILabel. Vedi my self-answered question here. Funziona un po ', ma non è valido, per le ragioni delineate là.