2013-10-28 194 views
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,我得到這樣的:

enter image description here

仔細看影子。它完全水平顯示,但垂直顯示,它被剪切。該圖像是方面擬合的,並且圖像和圖像視圖可以是任意大小。如果我用NSShadow而不是圖層的陰影來嘗試,我會得到完全相同的結果。我可以在iOS中使用myView.clipsToBounds = NO,它用於解決此問題,但是我無法在Mac上找到該屬性。

如何在沒有剪裁的情況下在任意大小的NSImageView下繪製陰影?

+1

我也沒有答案。我唯一能告訴你的是,影子似乎被剪裁到視圖中(你的顯然比圖像寬,但是高度相同)。可悲的是,masksToBounds = NO在這裏沒有幫助。 – uliwitness

+0

與最新的xcode,我發現我可以將CI過濾器應用於視圖(我不知道該功能是否在之前也可用),然後我在容器上的圖像視圖*上應用陰影視圖的圖層*。它完美地工作。底線:如果我在圖像視圖自己的圖層上應用濾鏡,會發生同樣的情況,但是如果我將它應用於容器視圖的圖層,它就可以工作! –

回答

0

使用最新的Xcode,我發現我可以將CI過濾器應用於視圖(我不知道該功能是否在之前也可用),然後我在圖像視圖上應用了一個陰影容器視圖的圖層。它完美的作品。底線:如果我在圖像視圖自己的圖層上應用濾鏡,會發生同樣的情況,但是如果我將它應用於容器視圖的圖層,它將起作用!