NSView 图层阴影绘制子视图,而不是视图本身



我试图在NSViewlayer上设置阴影,但图层是在视图的子视图上绘制的,而不是视图本身。这是什么原因造成的?

有问题的视图及其所有子视图都是层支持的。除了一个子视图外,所有子视图都是带有图像的按钮(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设置阴影,结果相同。

事实证明,如果你在NSViewlayer上设置阴影,则只有当视图具有绘制不透明内容的drawRect:实现时,它才会绘制该视图。否则,它将绘制视图的所有子视图。

奇怪。

最新更新