我在下面为NSView编写了阴影效果代码。
[_nsview setWantsLayer:YES];
_nsview.layer.masksToBounds = NO;
_nsview.layer.cornerRadius = 5;
_nsview.layer.shadowOffset = CGSizeMake(.3f, -.3f);
_nsview.layer.shadowRadius = 10;
_nsview.layer.shadowOpacity = 0.20;
_nsview.layer.shadowColor = [NSColor blackColor].CGColor;
_nsview是NSView的出口。上面的代码完美地运行并产生阴影效果......但问题是在调整_nsview阴影后获取隐藏。
答案 0 :(得分:1)
改为使用NSShadow:
[_childView setWantsLayer:YES];
_childView.layer.backgroundColor = [NSColor whiteColor].CGColor;
_childView.layer.cornerRadius = 5;
NSShadow *dropShadow = [[NSShadow alloc] init];
[dropShadow setShadowColor:[NSColor colorWithWhite:0.1 alpha:0.6]];
[dropShadow setShadowOffset:NSMakeSize(0, -5)];
[dropShadow setShadowBlurRadius:5];
_childView.shadow = dropShadow;
答案 1 :(得分:0)
除非您使用图层托管视图(注意:与图层支持的视图不同),否则您应该假设NSView
可以在幕后随时更改图层属性。阴影和变换是开发人员控制之外最常见的属性。
这是一些有用的阅读:
https://www.objc.io/issues/14-mac/appkit-for-uikit-developers/