iOS CAShapeLayer精讲

来源:互联网 发布:淘宝网充值平台2016 编辑:程序博客网 时间:2024/05/16 09:52


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


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


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

@property(nullable) CGPathRef path;

CAShapeLayer与UIBezierPath画圆

    CAShapeLayer *layer = [CAShapeLayerlayer];

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

    layer.position =CGPointMake(50,50);

    layer.fillColor = [UIColorclearColor].CGColor;

    layer.lineWidth =2.0;

    layer.strokeColor = [UIColorredColor].CGColor;

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

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

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

    layer.path = circlePath.CGPath;

    [self.view.layeraddSublayer:layer];


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


0 0
原创粉丝点击