我使用 kCGBlendModeClear 混合模式来实现橡皮擦工具。它在 ios 中运行良好,但在 OS X 中无法运行。它在 OS X 中使用 kCGBlendModeClear 混合模式创建黑色线条。
这是示例代码:
#if TARGET_OS_IPHONE
CGContextRef context = UIGraphicsGetCurrentContext();
#else
CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];
#endif
CGContextSaveGState(context);
CGContextSetLineWidth(context, 10);
CGContextSetRGBStrokeColor(context, 255.0, 0.0, 0.0, 1.0);
CGContextMoveToPoint(context, 100, 100);
CGContextAddLineToPoint(context, 200, 200);
CGContextStrokePath(context);
CGContextSetBlendMode(context, kCGBlendModeClear);
CGContextMoveToPoint(context, 150, 150);
CGContextAddLineToPoint(context, 180, 180);
CGContextStrokePath(context);
CGContextRestoreGState(context);
IOS:
但在 OS X 中:
我还尝试更改视图和超级视图不透明属性和背景颜色,但没有帮助。
我知道清晰的颜色实际上是带有 alpha 0 的黑色,但我想知道为什么在 OS X 中忽略了 alpha。
谢谢。