我想CAShapeLayer
用两种交替的颜色(例如黑色和白色,想想 Preview.app 选择框)来描边 a 的路径。我不确定如何做到这一点,或者这是否可以使用 Quartz。
我已将 CAShapeLayer 设置为具有白色边框,然后将路径属性设置为黑色虚线。我希望这应该产生黑白虚线的效果。但是,似乎首先绘制了路径,在顶部描边了边框,请参见屏幕截图(毛皮属于我的猫),
任何人都可以提出更好的方法或让它发挥作用的方法吗?
编码,
// Stroke a white border
[shapeLayer setFrame:shapeRect];
[shapeLayer setBorderColor:[[NSColor whiteColor] CGColor]];
[shapeLayer setBorderWidth:1.0];
// Stroked a black dash path (along the border)
// and fill shape with clear colour
[shapeLayer setFillColor:[[NSColor clearColor] CGColor]];
[shapeLayer setStrokeColor:[[NSColor blackColor] CGColor]];
[shapeLayer setLineWidth:1.0];
[shapeLayer setLineJoin:kCALineJoinRound];
[shapeLayer setLineDashPattern:
[NSArray arrayWithObjects:[NSNumber numberWithInt:5],
[NSNumber numberWithInt:5],
nil]];
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL, shapeLayer.bounds);
[shapeLayer setPath:path];
CGPathRelease(path);