La propiedad Corner Radio de UILabel no funciona en iOS 7.1
iphone objective-c (6)
Estoy configurando la propiedad UILabel
para UILabel
. Está funcionando bien todas las versiones de iOS < 7.1
. Siguiendo el código que he usado,
UILabel *originaltagLbl = [[UILabel alloc]initWithFrame:CGRectMake(startX, startY, 100,30)];
[originaltagLbl setFont:[UIFont fontWithName:@"MuseoSans-500" size:15]];
[originaltagLbl setTextAlignment:NSTextAlignmentCenter];
[originaltagLbl setTextColor:UIColorFromRGB(0xffffff)];
originaltagLbl.backgroundColor = [UIColor redColor];
originaltagLbl.layer.cornerRadius = 5;
originaltagLbl.layer.borderColor = [UIColor redColor].CGColor;
originaltagLbl.layer.borderWidth = 1;
[scrollView addSubview:originaltagLbl];
Si uso esto, simplemente mostraré la etiqueta como caja rectangular. Entonces, ¿cómo establecer el radio de la esquina de UILabel
en iOS 7.1
Agregue la siguiente línea a su código:
originaltagLbl.layer.masksToBounds = YES;
Para más información, vea this respuesta, o lea la documentation .
Es cierto que clipsToBounds funciona en 7.1, pero el problema está en situaciones en las que estás desplazando / animando que es muy lento y hace que todo se vuelva lento.
Establecer el color de fondo en la capa en lugar de la vista en pantalla es todo lo que se necesita.
Ver: UILabel layer cornerRadius que afecta negativamente el rendimiento
Intente establecer la propiedad clipsToBounds de clipsToBounds
en YES
Puedes usar el siguiente código,
[[myLabel layer] setCornerRadius:5.0f];
[[myLabel layer] setMasksToBounds:YES];
Gracias,
Solución Swift 2:
@IBOutlet weak var your_label: UILabel!
your_label.layer.cornerRadius = 5
your_label.layer.masksToBounds = true
Swift 3/4
yourlabel.layer.cornerRadius = 8 //your desire radius
yourlabel.layer.masksToBounds = true