我有一个NSView用于显示背景颜色的自定义.这有效.但是,我在该图像中有未保留的阴影.
图像的所有透明或半透明区域都呈现为黑色.我该如何解决?
- (void)drawRect:(NSRect)dirtyRect {
NSColor *pattern = [NSColor colorWithPatternImage:[NSImage imageNamed:@"bg"]];
[pattern setFill];
NSRectFill(dirtyRect);
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
NSRectFill()是一个快捷方式NSRectFillUsingOperation(rect, NSCompositeCopy).这意味着它不会将颜色的alpha通道与背景合成,它只是在传入的矩形中绘制源颜色.相反,您应该使用:
NSRectFillUsingOperation(rect, NSCompositeSourceOver);
Run Code Online (Sandbox Code Playgroud)
的NSCompositeSourceOver地方源图像是不透明的,并且目标图像合成别处操作将显示源图像.
| 归档时间: |
|
| 查看次数: |
422 次 |
| 最近记录: |