2012-03-22 65 views
1

簡單地說,我有一個NSView與一堆子視圖。在awakeFromNib方法(該視圖的控制器內),我決定添加以下內容:可可:[self.view setWantsLayer:YES]將該視圖帶到其他子視圖的上方?

[_backgroundImageView setWantsLayer:YES]; 
[[_backgroundImageView layer] setShadowOpacity:1.0f]; 
[[_backgroundImageView layer] setShadowOffset:NSMakeSize(-3, -3)]; 

的backgroundImageView是在所有子視圖的背面。但是,當我添加以前的代碼時,它會正確繪製陰影,但也會在所有其他圖層上繪製backgroundImageView。爲什麼?我如何解決這個問題?

回答

6

好吧,當我把頭髮撕開時,幸運的是我在撕開最後一根頭髮之前找到了一個解決方案。

使用接口生成器(或僅在代碼爲superview的setWantsLayer:)。

我在Xcode中打開了nib文件,並使用imageView的圖層屬性進行播放。 轉過來我也應該爲superview(self.view)啓用圖層。不僅如此,而且我應該擰緊imageView的框架,否則即使設置爲「比例向上或向下」,它也會被縮放爲「獨立軸」。

和平...

+0

然而,最終,我添加了陰影的圖像=/..爲什麼?繪畫時很刺耳。 – Mazyod 2012-03-22 17:36:04

+0

使用界面構建器與它無關,只需在代碼中的_backgroundImageView的超級視圖中調用setWantsLayer:YES即可。 – valexa 2013-11-03 19:22:10

+0

@valexa對,謝謝。我只是發現,當我打開NIB文件。我希望我以前知道... – Mazyod 2013-11-03 23:01:36

相關問題