2010-03-31 12 views
10

Come posso impostare il bordo dell'etichetta che viene generato dinamicamente (non da Interface Builder)?imposta il bordo dell'etichetta in iphone

+3

possibile duplicato di http://stackoverflow.com/questions/2311591/how-to-draw-border-around-a-uilabel – Vladimir

+0

Eventuali duplicati di [ Come disegnare il bordo attorno a un UILabel?] (Https://stackoverflow.com/questions/2311591/how-to-draw-border-around-a-uilabel) – Suragch

risposta

29

è possibile farlo da

Label.layer.borderColor = [UIColor whiteColor].CGColor; 
Label.layer.borderWidth = 4.0; 

prima di questo è necessario importare un quadro QuartzCore/QuartzCore.h

0

Non sono sicuro che sia possibile per impostazione predefinita con UILabel. È possibile considerare l'utilizzo di una lettura sola (field.editing = NO) UITextField e l'impostazione di borderStyle (operazione che può essere eseguita a livello di codice utilizzando UITextBorderStyle). Anche se potrebbe essere un po 'pesante. Un'altra opzione potrebbe essere quella di sottoclasse UILabel per disegnare il bordo.

In alternativa, a seconda delle esigenze questo potrebbe essere migliore, utilizzare il supporto CALayer e disegnare un bordo usando le sue proprietà borderColor e borderWidth.

1

È anche provare a creare una sottoclasse l'etichetta e l'override del drawRect: metodo per disegnare o un bordo o qualsiasi altra cosa che ti piace:

- (void)drawRect:(CGRect)rect 
{ 
    [super drawRect:rect]; 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    [[UIColor blackColor] setStroke]; 
    CGContextStrokeRect(context, self.bounds); 
} 
2

versione Swift

enter image description here

Set etichetta bordo

label.layer.borderWidth = 2.0 

Set bordo colore

label.layer.borderColor = UIColor.blueColor().CGColor 

Usa angoli arrotondati

label.layer.cornerRadius = 8 
colore di sfondo

rendere il soggiorno entro gli angoli arrotondati

label.layer.masksToBounds = true 
Problemi correlati