记录一下纯代码画一个三角形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)
}
}
网友评论