美文网首页
iOS 贝塞尔曲线基本使用

iOS 贝塞尔曲线基本使用

作者: 孟小于max | 来源:发表于2019-03-25 15:56 被阅读0次

    楼主之前接到了一个需求,其中要求tableviewCell中有虚线分割线,于是顺便学习了一下贝塞尔曲线的使用。

    func draw(_ rect: CGRect) 方法里,viewcontroller不可以
    override func draw(_ rect: CGRect) {
    }
    
          画虚线
    UIColor.red.set()
            let verticalLinePath = UIBezierPath.init()
            verticalLinePath.lineWidth = 1.0
            let arr = [CGFloat(3),CGFloat(3)]
            verticalLinePath.setLineDash(arr, count: 2, phase: 0.0)
            verticalLinePath.move(to: CGPoint(x: 0, y: 100))
            verticalLinePath.addLine(to: CGPoint(x: UIScreen.main.bounds.width, y: 100))
            verticalLinePath.stroke()
            verticalLinePath.fill()
    
    画曲线
    
    //        UIColor.red.set()
    //        let path = UIBezierPath.init()
    //        path.lineWidth = 5.0
    //        path.move(to: CGPoint(x: 0, y: 0))
    //        path.addLine(to: CGPoint(x: 0, y: 100))
    ////        path.addLine(to: CGPoint(x: UIScreen.main.bounds.width, y: 100))
    ////        path.addArc(withCenter: CGPoint(x: UIScreen.main.bounds.width / 2, y: 0), radius: UIScreen.main.bounds.width , startAngle: 3.14159 / 4, endAngle: 3.14159 / 2, clockwise: true)
    //        path.addQuadCurve(to: CGPoint(x: UIScreen.main.bounds.width, y: 100), controlPoint: CGPoint(x: UIScreen.main.bounds.width / 2, y: 175))
    //        path.addLine(to: CGPoint(x: UIScreen.main.bounds.width, y: 0))
    //        path.close()
    //        path.fill
    
    画椭圆
    
    //        UIColor.green.set()
    //        let path = UIBezierPath.init(ovalIn: CGRect(x: 0, y: 0, width: 200, height: 100))
    //        path.fill()
    ////        path.stroke()
    
    画直线折线
    
    //        UIColor.red.set()
    //        let path = UIBezierPath.init()
    //        path.move(to: CGPoint(x: 0, y: 0))
    //        path.addLine(to: CGPoint(x: 100, y: 100))
    //        path.addLine(to: CGPoint(x: 100, y: 200))
    //        path.close()
    //        path.lineCapStyle = CGLineCap.round
    //        path.lineJoinStyle = CGLineJoin.round
    //        path.lineWidth = 5.0
    //
    //        path.fill()
    //        path.stroke()
    
    画圆弧
    
    //        UIColor.green.set()
    //
    //        let path = UIBezierPath.init(arcCenter: CGPoint(x: 200, y: 200), radius: 90, startAngle: 0, endAngle: 2, clockwise: true)
    //        path.lineWidth = 5.0
    //        path.lineJoinStyle = CGLineJoin.round
    //        path.lineCapStyle = CGLineCap.round
    //        path.stroke()
    
    
    let shapeLayer = CAShapeLayer() shapeLayer.path = path.cgPath //存入UIBezierPath的路径
    shapeLayer.fillColor = nil//设置填充色
    shapeLayer.lineWidth = 2//设置路径线的宽度shapeLayer.strokeColor = UIColor.blue.cgColor //路径颜色self.view.layer.addSublayer(shapeLayer)
    
    }
    

    还有一些画圆角和涉及动画的贝塞尔曲线暂时没有po出来,因为代码忘记在哪个demo里了 找到了再补充

    相关文章

      网友评论

          本文标题:iOS 贝塞尔曲线基本使用

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