ios iphone objective-c ios7.1

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