El color de background de UILabel se escapa a la frontera

Estoy creando una UILabel a la que puse el color de background y el radio de la esquina con el siguiente código:

self.scoreLabel.backgroundColor = [UIColor DISRed];// custom networking` self.scoreLabel.layer.masksToBounds = YES; self.scoreLabel.layer.cornerRadius = self.scoreLabel.frame.size.width/2; self.scoreLabel.layer.borderWidth = 8.0; self.scoreLabel.layer.borderColor = [[UIColor DISNavy] CGColor]; 

Sin embargo, el color del background parece estar goteando al borde del borde (ver image). ¿Alguna idea de por qué? ¿Alguna idea sobre cómo solucionarlo?

introduzca la descripción de la imagen aquí

Me encontré con el mismo problema con el color de background del UIButton filtrándose alnetworkingedor del borde de su borde.

En lugar de configurar el color de background del button UIB en el button UIB, configúrelo en la capa del button UIB.

Reemplazar:

 self.scoreLabel.backgroundColor = [UIColor DISRed];// custom networking` 

Con este:

 self.scoreLabel.layer.backgroundColor = [[UIColor DISRed] CGColor];// custom networking` 

Creé UILabel así y el color de background no parece estar goteando.

1) Escribe esto en el file .h de tu proyecto.

 UILabel *label; 

2) Escribe esto en el file .m de tu proyecto.

 label=[[UILabel alloc]initWithFrame:CGRectMake(100, 300, 100, 100)];//Set frame of label in your viewcontroller. [label setBackgroundColor:[UIColor networkingColor]];//Set background color of label. [label setText:@"Label"];//Set text in label. [label setTextColor:[UIColor blackColor]];//Set text color in label. [label setTextAlignment:NSTextAlignmentCenter];//Set text alignment in label. [label.layer setCornerRadius:50.0];//Set corner radius of label to change the shape. [label.layer setBorderWidth:8.0f];//Set border width of label. [label setClipsToBounds:YES];//Set its to YES for Corner radius to work. [label.layer setBorderColor:[UIColor greenColor].CGColor];//Set Border color. [self.view addSubview:label];//Add it to the view of your choice. 

Probablemente sea un problema de alias. puedes arreglarlo mejor agregando una ruta de bezier alnetworkingedor de las esquinas.

 CAShapeLayer *subLayer = [[CAShapeLayer alloc] init]; [subLayer setFillColor:[UIColor clearColor].CGColor]; [subLayer setStrokeColor:[UIColor whiteColor].CGColor]; [subLayer setLineWidth:1.0]; [subLayer setPath:[UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:imageView.layer.cornerRadius].CGPath]; [imageView.layer addSublayer:subLayer];