2010-03-31 20 views
10

¿Cómo puedo configurar el borde de la etiqueta que se genera dinámicamente (no desde el Generador de interfaz)?establecer borde de etiqueta en iphone

+3

posible duplicado de http://stackoverflow.com/questions/2311591/how-to-draw-border-around-a-uilabel – Vladimir

+0

duplicado posible de [ ¿Cómo dibujar un borde alrededor de un UILabel?] (Https://stackoverflow.com/questions/2311591/how-to-draw-border-around-a-uilabel) – Suragch

Respuesta

29

puede hacerlo por

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

antes de ello, tiene que importar un marco QuartzCore/QuartzCore.h

0

No estoy seguro de que pueda por defecto con UILabel. Es posible que desee considerar el uso de un campo de solo lectura (field.editing = NO) UITextField y configurar su borderStyle (que se puede hacer mediante programación utilizando un UITextBorderStyle). Aunque eso puede ser un poco "pesado". Otra opción puede ser la subclase UILabel para dibujar su borde.

Alternativamente, y dependiendo de sus necesidades, esto puede ser mejor, use el reverso CALayer y dibuje un borde usando sus propiedades borderColor y borderWidth.

1

También puede tratar de una subclase de la etiqueta y anular la drawRect: Método para dibujar o una frontera o lo que les gusta:

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

versión Swift

enter image description here

frontera etiqueta Set

label.layer.borderWidth = 2.0 

Set de color frontera

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

Use esquinas redondeadas

label.layer.cornerRadius = 8 

que el color de fondo mantenerse dentro de las esquinas redondeadas

label.layer.masksToBounds = true 
Cuestiones relacionadas