我试图在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