2

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:

iOSで

しかしOS Xでは:

OS Xで

ビューとスーパービューの不透明なプロパティと背景色も変更しようとしましたが、助けにはなりませんでした。

クリアカラーが実際にはアルファ 0 の黒であることは知っていますが、OS X でアルファが無視されるのはなぜでしょうか。

ありがとう。

4

2 に答える 2