我试图在NSView
的layer
上设置阴影,但图层是在视图的子视图上绘制的,而不是视图本身。这是什么原因造成的?
有问题的视图及其所有子视图都是层支持的。除了一个子视图外,所有子视图都是带有图像的按钮(NSButton
- 另一个是通过drawRect:
渲染的自定义视图。
self.layer.shadowColor = [[NSColor blackColor] colorWithAlphaComponent:0.9].CGColor;
self.layer.shadowRadius = 2;
self.layer.shadowOffset = NSMakeSize(0, -1);
self.layer.shadowOpacity = 0.9;
我也尝试通过NSShadow
设置阴影,结果相同。
事实证明,如果你在NSView
的layer
上设置阴影,则只有当视图具有绘制不透明内容的drawRect:
实现时,它才会绘制该视图。否则,它将绘制视图的所有子视图。
奇怪。