我有一个CALayer实例,我已将其设置为png文件作为内容。设置各种阴影属性后,阴影将在图像上方/上方绘制,而不是在图像上方。
以下是代码:
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时是否还有一些问题?
谢谢,Mark。
编辑:我也尝试了上面的代码,负Y偏移,同样的结果,阴影在图像上方。
答案 0 :(得分:1)
尝试将偏移的Y设置为负(10,-10)。你没有说明这是Mac还是iPhone,但你可能会对UIKit,AppKit,CoreGraphics和CoreAnimation的不同部分有不同的坐标系这一事实感到惊讶。确保你知道哪种方式“起来。”