具有透明填充的NSBezierPath

时间:2013-06-28 22:19:31

标签: cocoa nsview nsbezierpath nscolor

我有一个需要半透明填充的NSBezierPath。当我用纯色填充它时,我得到了预期的结果。然而,当填充半透明颜色时,我得到一个圆形笔划但奇数矩形填充的路径。它看起来像:

Rectangular fill

我没有填满整个区域,而是在一个带有一个未填充的小型边界的赛道内得到一个填充的矩形。我按如下方式设置了我的路径:

NSBezierPath *menuItem = [NSBezierPath bezierPathWithRoundedRect:menuItemRect xRadius:3 yRadius:3]

[menuItem setLineWidth:4.0];
[menuItem setLineJoinStyle:NSRoundLineJoinStyle];

[[NSColor whiteColor] set];
[menuItem stroke];

[[NSColor colorWithCalibratedRed:0.000 green:0.000 blue:0.000 alpha:0.500] set];
[menuItem fill];

如果有人有任何想法,那就太棒了。

由于

1 个答案:

答案 0 :(得分:1)

半透明填充与边框重叠,因为NSBezierPath从导致该小边框的路径中间描边。白色边框和另一个边框最多可以加4个像素。所以为了解决这个问题,我认为你需要创建另一个bezier路径来防止2彼此重叠。