如何使用CAShapeLayer绘制图形?

Pro*_*ber 2 iphone core-animation cashapelayer ipad ios

是否可以使用CAShapeLayer绘制具有给定线宽的曲线?它似乎只能画出填充的形状.我想绘制一个动画情节图.只是一条线,而不是一个形状.

pas*_*aya 5

好吧,事实上你可以用CAShapeLayers绘制线条.尝试这样的事情:

UIBezierPath *graphPath = [UIBezierPath bezierPath];
[graphPath moveToPoint:CGPointMake(x, y)];
[graphPath addLineToPoint:CGPointMake(x, y + h)];
[graphPath closePath];
Run Code Online (Sandbox Code Playgroud)

然后把它放在CAShapeLayer中:

CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];
[shapeLayer setFrame: aFrame];
[shapeLayer setPath: [graphPath CGPath]];
[shapeLayer setStrokeColor:[[UIColor blackColor] CGColor]];
[shapeLayer setMasksToBounds:YES];
Run Code Online (Sandbox Code Playgroud)

您可以更改graphPath以绘制要绘制的任何曲线/线.

希望这可以帮助!

  • 非常感谢。已投票!为了只获得该行,我必须将fillColor设置为nil。 (2认同)