我一直在嘗試每一種方法,我發現,但我無法做到。我只是想製作一個帶圓角的標籤,一個帶背景圖案的陰影。只有當我不想要圓角時,影子纔會起作用。我無法讓他們在一起!UILabel帶圓角,陰影和背景圖案
這裏是我的代碼的影子:
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;
這給了我的影子沒有圓角。但如果我使用
[label.layer setMasksToBounds:YES];
這將給我沒有陰影的圓角。我已使用了陰影路徑的提醒,所以用陰影路徑的代碼如下所示:
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;
此代碼給我圓潤的邊角,但沒有影子。 有什麼建議嗎?
謝謝!
http://stackoverflow.com/questions/3690972/why-maskstobounds-yes-prevents-calayer-shadow – 2012-04-19 01:35:51