2015-09-06 16 views
8

Ho un etichetta con testo:Xcode: come aggiungere margine/riempimento per etichettare il testo?

enter image description here

Tuttavia, la voglio avere più imbottitura (e per i bordi per essere un po 'arrotondate se possibile). Ma quando allungo l'etichetta nel mio storyboard in modo che sembri avere il padding, e poi riavvio il simulatore, non aggiunge padding ad esso.

Come faccio? BTW, sto utilizzando layout automatico + obiettivo c

+0

non sono sicuro che aiuta dal Non l'ho mai fatto ma forse aiuta. http://stackoverflow.com/questions/3476646/uilabel-text-margin – PeterPan

+0

c'è un modo per farlo attraverso gli storyboard? – Edmund

risposta

9

Se si desidera seguire il percorso dei vincoli di layout, questa è probabilmente la soluzione adatta per voi:

È consigliabile utilizzare una vista Contenitore e posizionare l'etichetta all'interno di essa. Quindi aggiungi vincoli per l'etichetta, che sarà equivalente a un riempimento.

enter image description here

Selezionare l'etichetta e fare clic sul pannello di vincoli in basso a destra nel file Storyboard.

Label's constraints to container view

Con l'etichetta selezionata, si applicano i vincoli di layout, come visto sopra (assicuratevi di selezionare le rosse "linee" in modo che i vincoli siano effettivamente applicate).

End result

La vista d'arancia è la vista del contenitore. L'etichetta è proprio all'interno di quello.

2

È possibile aggiungere margine con

yourLabel.frame = CGRectMake(0,0,100,100) 
+2

Si dovrebbero modificare i vincoli quando si utilizza l'autolayout, non i frame. – oltman

2

È necessario eseguire l'override il metodo drawRect di UILabel

codice di esempio:

#import "OCPaddedLabel.h" 
#define PAD 10.0f 
#define PAD_VERT 6.0f 

@implementation OCPaddedLabel 

- (void)drawTextInRect:(CGRect)rect { 
    UIEdgeInsets insets = {PAD_VERT, PAD, PAD_VERT, PAD}; 
    [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)]; 
} 

se Vorrei aggiungere angoli arrotondati, è necessario:

label.layer.cornerRadius = 15.0f; 
label.layer.masksToBounds = YES; 
2

È possibile aggiungere angoli arrotondati dallo storyboard selezionare la propria UILabel (o qualsiasi vista) e andare su inspector, nella sezione ispettore identità aggiungere un valore come mostrato nell'immagine.

enter image description here

2

Per cambiare l'imbottitura su un'etichetta con un colore di sfondo in cui il testo è allineato a sinistra oa destra, prima selezionare l'etichetta poi nella attributi ispettore in alto and change text from Plain to Attributed in the dropdown menu

Selezionare l'allineamento del testo (in questo esempio si allinea a destra) click on the 3 dot menu button to the far right to open additional settings and change Text-Direction from Natural to Right To Left

testo in etichetta dovrebbe ora avere un po 'di imbottitura sul lato destro

Problemi correlati