KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have been trying every single method I found but I wasn't able to make it. I simply want to make a label with rounded corners, a drop shadow with a background pattern. The shadow works only if I do not want rounded corners. I can't get them both together! Here is my code with the shadow: 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; This gives me shadow without rounded corners. But if I use [label.layer setMasksToBounds:YES]; This will give me rounded corners with no shadow. I have taken the advise to use a shadow path, so the code with the shadow path looks like this: 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; This code does give me rounded corners but no shadow. Any suggestions? Thanks!
Tags (comma-separated)
Save Edits
Cancel