我試圖在NSView的背景上繪製NSShadow。我想用它作爲NSGradient的替代品,因爲我需要支持Mac OS X Tiger。我該怎麼做?我知道這一定很容易,我必須犯一些錯誤。在NSView中繪製NSShadow
謝謝!
我試圖在NSView的背景上繪製NSShadow。我想用它作爲NSGradient的替代品,因爲我需要支持Mac OS X Tiger。我該怎麼做?我知道這一定很容易,我必須犯一些錯誤。在NSView中繪製NSShadow
謝謝!
最簡單的方法可能是設置視圖圖層的陰影屬性。如果你有一個的NSView *命名view
,它會是這樣的:
[[view layer] setShadowOpacity:0.5];
陰影不透明度設置爲東西大於0會使陰影可見。繪製的陰影將與視圖的Alpha通道相似,因此無論您在視圖中繪製哪個陰影都會產生陰影。還有其他幾個可以設置的陰影屬性,例如模糊半徑。請查看CALayer reference page瞭解更多信息。
如果你必須使用NSShadow,那麼就建立了一個影子,你做你的繪圖之前:
- (void)drawRect:(NSRect)rect
{
NSShadow *shadow = [[[NSShadow alloc] init] autorelease];
[shadow setShadowBlurRadius:3.0];
[shadow setShadowOffset:NSMakeSize(0.0, 5.0)];
[shadow setShadowColor:[NSColor colorWithCalibratedWhite:0.0 alpha:0.6]];
[shadow set];
// continue with your drawing...
}
Tiger上沒有核心動畫,這就是爲什麼我必須使用NSShadow :( – 2012-02-19 04:48:50
對不起,沒有明確說明 – 2012-02-19 06:22:00
需要一些更正,因爲它不能編譯,方法名稱是setShadowBlurRadius,同時setShadowOffset取NSSize不是雙精度。 – 2012-11-12 04:39:41
展開你的問題,謝謝。你想「投下」這個影子? – 2012-02-19 04:28:55