美文网首页
【QuartzCore】CAShapeLayer - 绘图板

【QuartzCore】CAShapeLayer - 绘图板

作者: 居然是村长 | 来源:发表于2016-03-25 00:20 被阅读150次

    在这个上面画UIBezierPath曲线,然后add到任意的View上!灰常方便。本身也灰常方便。使用与UIBezierPath,类似,还能带动画!

    绘制路径 - UIBezierPath 话个path 就好了

    不多提了。看UIKit - UIBezierPath。只需要路径,属性什么不要设置,shapeLayer自己设置。其实差不多的。

    设置 shapeLayer

        // 创建一个shapeLayer 
        CAShapeLayer *layer = [CAShapeLayer layer];
        layer.frame = self.view.bounds;
        
        layer.path = path.CGPath; // 从贝塞尔曲线获取到形状
        layer.lineWidth = 1.0f; // 线条宽度
        layer.strokeColor = [UIColor redColor].CGColor; // 边缘线的颜色
        layer.miterLimit = 2.;
        layer.lineDashPhase = 10;// 未知?
        layer.lineDashPattern = @[@3,@10];// 虚线
        
        layer.fillColor = [UIColor greenColor].CGColor; // 闭环填充的颜色
    
        layer.fillRule = kCAFillRuleNonZero;
        /*
         CA_EXTERN NSString *const kCAFillRuleNonZero
         CA_EXTERN NSString *const kCAFillRuleEvenOdd
         */
        
        layer.lineCap = kCALineCapSquare; // 边缘线的类型
        /*
         CA_EXTERN NSString *const kCALineCapButt
         CA_EXTERN NSString *const kCALineCapRound
         CA_EXTERN NSString *const kCALineCapSquare
         */
        
        layer.lineJoin = kCALineJoinRound;
        /*
         CA_EXTERN NSString *const kCALineJoinMiter
         CA_EXTERN NSString *const kCALineJoinRound
         CA_EXTERN NSString *const kCALineJoinBevel
         */
        
        // 结合 CABasicAnimation 可以变成 动画绘制
    
        // 将layer添加进图层
        [self.view.layer addSublayer:layer];
        
    

    其他

    @property CGFloat strokeStart;
    @property CGFloat strokeEnd;
    @property CGFloat lineDashPhase;
    
    

    1

    相关文章

      网友评论

          本文标题:【QuartzCore】CAShapeLayer - 绘图板

          本文链接:https://www.haomeiwen.com/subject/pjgrlttx.html