Swift4 画一个三角形

2018-10-23  本文已影响0人  稀客花千树

记录一下纯代码画一个三角形import UIKit

class triangleView:UIView{

    private lazy var linePath : UIBezierPath = UIBezierPath()

    private lazy var lineShape : CAShapeLayer = CAShapeLayer()

    private lazy var firstPoint :CGPoint=CGPoint()

    private lazy var secondPoint :CGPoint=CGPoint()

    private lazy var thirdPoint :CGPoint=CGPoint()

    override init(frame:CGRect) {

        super.init(frame: frame)

    }

    override func layoutSubviews() {

        super.layoutSubviews()

        linePath.move(to: firstPoint)//起点

        linePath.addLine(to: secondPoint)//第二个点

        linePath.addLine(to: thirdPoint)//第三个点

        linePath.close()// 闭合路径

        lineShape.frame=CGRect(x:0, y:0, width:frame.size.width, height:frame.size.height)

        lineShape.lineWidth=Adapt(1)

        lineShape.lineJoin = kCALineJoinMiter // 线条间的样式

        lineShape.lineCap = kCALineCapSquare //线结尾样式

        lineShape.strokeColor = kClear.cgColor // 路径颜色

        lineShape.path = linePath.cgPath // 获取贝塞尔曲线的路径

        lineShape.fillColor = kpassagewayColor.cgColor // 填充颜色

    }

    required init?(coder aDecoder:NSCoder) {

        fatalError("init(coder:) has not been implemented")

    }

}

// MARK: - 配置 UI 视图

extension triangleView {

    func setUpAllView(firstPoint :CGPoint,secondPoint :CGPoint,thirdPoint :CGPoint) {

        self.firstPoint= firstPoint

        self.secondPoint= secondPoint

        self.thirdPoint= thirdPoint

        linePath = UIBezierPath.init()

        lineShape = CAShapeLayer.init() //设置路径画布

        self.layer.addSublayer(lineShape)

  }

}

上一篇 下一篇

猜你喜欢

热点阅读