我有一个CALayer实例,我已经为其设置了一个png文件作为内容。在设置各种阴影属性后,阴影将绘制在图像上方/上方而不是下方。CALayer在内容图像上绘制阴影
下面的代码:
CALayer *boardLayer = [CALayer layer];
boardLayer.frame = CGRectMake(self.layer.frame.origin.x,
self.layer.frame.origin.y, self.layer.frame.size.width, BOARD_HEIGHT);
boardLayer.shadowColor = CGColorCreateGenericRGB(100.0, 100.0, 0.0, 1.0);
boardLayer.shadowOffset = CGSizeMake(10, 10);
boardLayer.shadowOpacity = 0.99f;
boardLayer.shadowRadius = 5.0f;
boardLayer.contents = (id)[self imageToImageRef:[NSImage imageNamed:@"board.png"]
withMaxWidth: 0
andMaxHeight: 0];
boardLayer.contentsGravity = kCAGravityResize;
boardLayer.masksToBounds = NO;
在截图中可以看到,黄色的影子是内容之上:
有我丢失的东西在设立CALayer的?
谢谢,马克。
编辑:我也试过上面的代码与负Y偏移量,相同的结果,阴影是在图像上方。
你是否在某处设置了不透明度? – jkyle 2011-07-30 02:17:21