【发布时间】:2017-01-28 14:02:17
【问题描述】:
我正在尝试使用如下代码在 NSView 内绘制简单的矩形:
self.shapeLayer = [CAShapeLayer layer];
self.shapeLayer.lineWidth = 2.0;
self.shapeLayer.strokeColor = [[NSColor whiteColor] CGColor];
self.shapeLayer.fillColor = [[NSColor blackColor] CGColor];
[self.layer addSublayer:self.shapeLayer];
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 400, 400);
CGPathAddLineToPoint(path, NULL, 400, 600);
CGPathAddLineToPoint(path, NULL, 600, 600);
CGPathAddLineToPoint(path, NULL, 600, 400);
CGPathCloseSubpath(path);
// set the shape layer's path
self.shapeLayer.path = path;
我也尝试在NSView drawRect: 中绘制一些东西。
在这两种情况下,矩形都会被绘制,但它不在笔触/填充颜色集中,而是在一些半透明版本中,如 alpha 0.5 !
我试图在放置在 NSWindow 内的 NSView 上绘制这个 Rectangle,它的 backgroundColor 设置为 clearColor 并且 opaque 设置为 NO。 然后我认为可能与这种透明度相关联,所以我将背景颜色更改为 greenColor 并将不透明更改为 YES。而且我仍然用半透明而不是生动的纯色绘制矩形。 我做错了什么?
【问题讨论】:
标签: objective-c macos cocoa