我试图在 NSView
的 layer
上设置阴影,但该图层是在我的 View 的 subview 上绘制的,而不是 View 本身。是什么原因造成的?
相关 View 及其所有 subview 都是分层支持的。除了一个 subview 之外,所有 subview 都是带有图像的按钮 (NSButton
) - 另一个 subview 是通过 drawRect:
呈现的自定义 View 。
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
上设置阴影,则仅当 View 具有 drawRect 时,它才会在该 View 上绘制:
绘制不透明内容的实现。否则它会绘制所有 View 的 subview 。
奇怪。
关于cocoa - NSView 图层阴影绘制在 subview 上,而不是 View 本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37685265/