我正在尝试在NSImageView
. 我正在访问CALayer
视图并在那里设置其阴影属性:
[self.originalImageView setWantsLayer:YES];
CALayer *imageLayer = self.originalImageView.layer;
[imageLayer setShadowRadius:5.f];
[imageLayer setShadowOffset:CGSizeZero];
[imageLayer setShadowOpacity:0.5f];
[imageLayer setShadowColor:CGColorCreateGenericGray(0, 1)];
imageLayer.masksToBounds = NO;
但即使我已将掩码设置为否,我还是得到了这个:
仔细看影子。它在水平方向上完美显示,但在垂直方向上被剪裁了。图像是宽高比的,图像和图像视图都可以是任意大小。如果我尝试用它NSShadow
而不是图层的阴影,我会得到完全相同的结果。我可以myView.clipsToBounds = NO
在 iOS 中使用,它曾经解决过这个问题,但是我在 Mac 上找不到该属性。
如何在NSImageView
不裁剪的情况下在任意大小下绘制阴影?