2012-02-22 13 views
8

Come si aggiunge un contorno nero al testo UILabel bianco?Struttura per testo UILabel

+0

controllare questo: http: //stackoverflow.com/a/1424665/845115 –

+0

intendi bordo nero? – rakeshNS

+0

@rakeshNS sì Voglio il bordo nero attorno al testo dell'etichetta. – hgpl

risposta

9

Un'opzione è di impostare l'ombra, che potrebbe non essere esattamente ciò che si desidera, ma raggiunge un effetto simile. È possibile regolare manualmente l'offset:

UILabel *myLabel = ...; 
lbl.shadowColor = [UIColor whiteColor]; 
lbl.shadowOffset = CGSizeMake(0, -1.0); 

Si prega di notare che è anche possibile definire questo in Interface Builder per la vostra UILabel.

shadow http://i.minus.com/jbiG0jVdOxJbgh.png

Se questo non è abbastanza per voi controllare questo blog post che si occupa di creazione di sottoclassi UILabel per ottenere un effetto di bagliore:

glow http://www.redrobotstudios.com/blog/wp-content/uploads/2010/04/glow1.png

+0

In questo modo si aggiunge un contorno sfocato o il tratto/contorno è sfalsato. Vedi questo link per un'ottima soluzione: http://stackoverflow.com/a/15877054/254598 – Maurizio

2

Per iOS5, come al solito è quello di utilizzare CoreGraphics per impostare riempimento/traccia e quindi renderizzare la grafica. Tuttavia, può essere abbastanza complicato ottenere l'allineamento corretto per tutte le dimensioni dei caratteri.

Consiglio di guardare la mia soluzione here. Puoi usarlo direttamente (ha anche ombre diffuse) o semplicemente scegliere il codice che fa il contorno. Per iOS6 c'è una soluzione più ordinata (più piccola) che funziona ancora meglio. Guarda here.

+1

iOS6 è ora disponibile, potresti parlarci della soluzione più ordinata? Non riuscivo a capirlo. –

+0

Sì @Nuoji, sono anche interessato a conoscere la soluzione iOS 6. – flainez

+0

Come hai visto, ho aggiornato la mia risposta con un collegamento alla soluzione iOS 6. – Nuoji

1

Sono sicuro che il codice this risolverà il problema.

In classe KSLabel.m vede questa riga di codice

// Outline color 
self.textColor = [UIColor whiteColor]; 

cambiamento a

self.textColor = [UIColor blackColor]; 

e vedrete il bordo nero del testo.

5

Disclosure: Sono lo sviluppatore di THLabel.

Ho rilasciato una sottoclasse UILabel qualche tempo fa, che consente una struttura nel testo e altri effetti. Puoi trovarlo qui: https://github.com/tobihagemann/THLabel

Sto utilizzando Core Text e Core Graphics per ottenere l'effetto.

+1

Appena installato, funziona perfettamente fino ad ora, ben fatto. – TaylorAllred