0
我试图在NSImageView
下绘制阴影。我访问视图的CALayer
有设置其阴影属性:围绕NSImageView绘制阴影
[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;
但即使我已经设定口罩界限为NO,我得到这样的:
仔细看影子。它完全水平显示,但垂直显示,它被剪切。该图像是方面拟合的,并且图像和图像视图可以是任意大小。如果我用NSShadow
而不是图层的阴影来尝试,我会得到完全相同的结果。我可以在iOS中使用myView.clipsToBounds = NO
,它用于解决此问题,但是我无法在Mac上找到该属性。
如何在没有剪裁的情况下在任意大小的NSImageView
下绘制阴影?
我也没有答案。我唯一能告诉你的是,影子似乎被剪裁到视图中(你的显然比图像宽,但是高度相同)。可悲的是,masksToBounds = NO在这里没有帮助。 – uliwitness
与最新的xcode,我发现我可以将CI过滤器应用于视图(我不知道该功能是否在之前也可用),然后我在容器上的图像视图*上应用阴影视图的图层*。它完美地工作。底线:如果我在图像视图自己的图层上应用滤镜,会发生同样的情况,但是如果我将它应用于容器视图的图层,它就可以工作! –