Tôi đã thử mọi phương pháp tôi tìm thấy nhưng tôi không thể làm được. Tôi chỉ muốn tạo một nhãn với các góc tròn, một bóng đổ với hình nền. Bóng chỉ hoạt động nếu tôi không muốn các góc tròn. Tôi không thể có được cả hai cùng nhau!Một nhãn UILabel với các góc tròn, bóng đổ và mẫu nền
Đây là mã của tôi với cái bóng:
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;
này mang lại cho tôi cái bóng không có các góc bo tròn. Nhưng nếu tôi sử dụng
[label.layer setMasksToBounds:YES];
Điều này sẽ cho tôi góc tròn không có bóng. Tôi đã thực hiện tư vấn để sử dụng đường dẫn bóng, vì vậy mã có đường dẫn bóng trông giống như sau:
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;
Mã này cho tôi góc tròn nhưng không có bóng. Bất kỳ đề xuất nào?
Cảm ơn!
http://stackoverflow.com/questions/3690972/why-maskstobounds-yes-prevents-calayer-shadow –