我没有阴影

时间:2012-03-03 04:15:26

标签: iphone objective-c ios quartz-graphics

这是我的代码:

CALayer *inLayer =[CALayer layer];
inLayer.backgroundColor = [UIColor redColor].CGColor;
inLayer.frame=CGRectMake(0,0,50, 50);
inLayer.position=CGPointMake(200, 200);
inLayer.cornerRadius=25;
inLayer.masksToBounds=YES;
inLayer.shadowColor=[UIColor blackColor ].CGColor;
inLayer.shadowOffset=CGSizeMake(5,10);
inLayer.shadowOpacity = 0.8;
inLayer.contents=(id)[UIImage imageNamed:@"Close.png"].CGImage;
inLayer.name=@"Close";
[self.view.layer addSublayer:inLayer];

我没有阴影。我错过了什么?

2 个答案:

答案 0 :(得分:1)

阴影被绘制在图层边界之外。您必须设置inLayer.masksToBounds = NO才能看到阴影。

当然,这会阻止cornerRadius工作。

您需要使用两个图层:一个用于设置阴影的外层,以及一个用于设置masksToBounds = YEScornerRadius = 25的内部子图层。

答案 1 :(得分:0)

只需删除此行:

inLayer.masksToBounds=YES;

你的代码工作正常