Need a tip with UIBezierPath. Triangle Shape like Instagram Sign Up View

后端 未结 2 1377
臣服心动
臣服心动 2021-01-01 03:27

I\'m trying to create a bezier path like the instagram triangle in the picture below, however I must be doing something wrong. The Bezier path does not show!



        
2条回答
  •  刺人心
    刺人心 (楼主)
    2021-01-01 03:58

    Xcode 10 • Swift 4.2

    func drawTriangle(size: CGFloat, x: CGFloat, y: CGFloat, up:Bool) {
    
        let triangleLayer = CAShapeLayer()
        let trianglePath = UIBezierPath()
        trianglePath.move(to: .zero)
        trianglePath.addLine(to: CGPoint(x: -size, y: up ? size : -size))
        trianglePath.addLine(to: CGPoint(x: size, y: up ? size : -size))
        trianglePath.close()
        triangleLayer.path = trianglePath.cgPath
        triangleLayer.fillColor = UIColor.white.cgColor
        triangleLayer.anchorPoint = .zero
        triangleLayer.position = CGPoint(x: x, y: y)
        triangleLayer.name = "triangle"
        view.layer.addSublayer(triangleLayer)
    }
    
    drawTriangle(size: 12, x: view.frame.midX/2, y: view.frame.midY, up: true)
    drawTriangle(size: 12, x: view.frame.midX, y: view.frame.midY, up: false)
    

提交回复
热议问题