Cocoa:使用NSGradient作为掩码在其下面绘制
我试图用Cocoa绘制一个形状的反射。我已经应用了NSAffineTransform并成功重新绘制了形状,但现在我无法弄清楚如何在其上绘制alpha蒙版。我正在使用
NSCompositeDestinationOut
操作,但它给了我一个不需要的结果:alt text http://img687.imageshack.us/img687/2417/capturedcran20100623094.png
我不确定如何解决这个问题 - 我需要这样做才能使渐变仅作为alpha蒙版而实际显示。我使用错误的合成模式吗?
谢谢!如果需要,这是渐变代码:
- (void)fadeOutRect:(NSRect)rect {
[NSGraphicsContext saveGraphicsState];
[[NSGraphicsContext currentContext] setCompositingOperation:NSCompositeDestinationOut];
NSGradient *gradient = [[NSGradient alloc] initWithColorsAndLocations:
[[NSColor blackColor] colorWithAlphaComponent:0.5], 0.0,
[[NSColor blackColor] colorWithAlphaComponent:1.0], 0.8, nil];
[gradient drawInRect:NSMakeRect(rect.origin.x, rect.origin.y + rect.size.height - ( PILL_HEIGHT * 2 ),
rect.size.width, PILL_HEIGHT) angle:270];
[NSGraphicsContext restoreGraphicsState];
}
没有找到相关结果
已邀请:
1 个回复
锑寝粒