iOS CAShapeLayer精讲


CAShapeLayer继承自CALayer,因此,可使用CALayer的所有属性。但是,CAShapeLayer需要和贝塞尔曲线配合使用才有意义。


上面只是部分说明内容,由于较长,只放一部分出来。这里是说CAShapeLayer是在其座标系统内绘制贝塞尔曲线的。因此,使用CAShapeLayer需要与UIBezierPath一起使用。


它有一个path属性,而UIBezierPath就是对CGPathRef类型的封装,因此这两者配合起来使用才可以的哦!

@property(nullable) CGPathRef path;

CAShapeLayer与UIBezierPath画圆

    CAShapeLayer *layer = [CAShapeLayer layer];

    layer.bounds = CGRectMake(0, 0, 100, 100);

    layer.position = CGPointMake(50, 50);

    layer.fillColor = [UIColor clearColor].CGColor;

    layer.lineWidth = 2.0;

    layer.strokeColor = [UIColor redColor].CGColor;

    #####首先确定layer在父layer中的位置#########

    UIBezierPath *circlePath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 50, 50)];

注意bezierPathWithOvalInRect函数的参数:不管是画圆圈,还是画矩形,frame的位置是相对于CAShapeLayer来说的。

    layer.path = circlePath.CGPath;

    [self.view.layer addSublayer:layer];


参考
http://www.jianshu.com/p/5f08035056f6


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章