He estado probando todos y cada uno de los métodos que he encontrado pero no he podido. Simplemente quiero hacer una etiqueta con esquinas redondeadas, una sombra paralela con un patrón de fondo. La sombra solo funciona si no quiero esquinas redondeadas. ¡No puedo juntarlos a los dos!UILabel con esquinas redondeadas, sombra paralela y patrón de fondo
Aquí está mi código con la sombra:
label.text = msg;
label.textAlignment = UITextAlignmentCenter;
label.frame = CGRectMake(20,10,280,40);
label.backgroundColor
= [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"msg_box_bg.png"]];
[label.layer setCornerRadius:10];
[label.layer setMasksToBounds:NO];
/* Shadow */
label.layer.shadowColor = [UIColor blackColor].CGColor;
label.layer.shadowOpacity = 0.6;
label.layer.shadowOffset = CGSizeMake(0,0);
label.layer.shadowRadius = 3;
Esto me da sombra sin esquinas redondeadas. Pero si uso
[label.layer setMasksToBounds:YES];
Esto me dará esquinas redondeadas sin sombras. Me he tomado el consejo para utilizar una ruta de sombra, por lo que el código con el camino de la sombra se ve así:
label.text = msg;
label.textAlignment = UITextAlignmentCenter;
label.frame = CGRectMake(20,10,280,40);
label.backgroundColor
= [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"msg_box_bg.png"]];
[label.layer setCornerRadius:10];
[label.layer setMasksToBounds:YES];
/* Shadow */
label.layer.shadowColor = [UIColor blackColor].CGColor;
label.layer.shadowOpacity = 0.6;
label.layer.shadowOffset = CGSizeMake(0,0);
label.layer.shadowRadius = 3;
label.layer.shadowPath = [[UIBezierPath bezierPathWithRoundedRect:label.frame cornerRadius:10]CGPath];
label.layer.shouldRasterize = YES;
Este código hace dame esquinas redondeadas pero ninguna sombra. ¿Alguna sugerencia?
Gracias!
http://stackoverflow.com/questions/3690972/why-maskstobounds-yes-prevents-calayer-shadow –