Ios 用UIView和CAShapeLayer形成一个三角形

Ios 用UIView和CAShapeLayer形成一个三角形,ios,swift,xcode,cashapelayer,Ios,Swift,Xcode,Cashapelayer,来自教程:http://swiftiostutorials.com/tutorial-draw-nice-triangle-view-border-cashapelayer/,我成功地创建了一个三角形,如: 但我试图实现的是一个三角形,如: 如何做到这一点 改用此路径: CGPathMoveToPoint(path, nil, 0, 0) CGPathAddLineToPoint(path, nil, width, 0) CGPathAddLineToPoint(path, nil, wid

来自教程:
http://swiftiostutorials.com/tutorial-draw-nice-triangle-view-border-cashapelayer/
,我成功地创建了一个三角形,如:

但我试图实现的是一个三角形,如:

如何做到这一点

改用此路径:

CGPathMoveToPoint(path, nil, 0, 0)
CGPathAddLineToPoint(path, nil, width, 0)
CGPathAddLineToPoint(path, nil, width/2, height)
CGPathAddLineToPoint(path, nil, 0, 0)
全班:

class Triangle: UIView {
    override func drawRect(rect: CGRect) {
        let mask = CAShapeLayer()
        mask.frame = self.layer.bounds

        let width = self.layer.frame.size.width
        let height = self.layer.frame.size.height

        let path = CGPathCreateMutable()

        CGPathMoveToPoint(path, nil, 0, 0)
        CGPathAddLineToPoint(path, nil, width, 0)
        CGPathAddLineToPoint(path, nil, width/2, height)
        CGPathAddLineToPoint(path, nil, 0, 0)

        mask.path = path
        self.layer.mask = mask
    }
}

啊,没有注意到额外的
CGPathAddLineToPoint
。谢谢,伙计!
class Triangle: UIView {
    override func drawRect(rect: CGRect) {
        let mask = CAShapeLayer()
        mask.frame = self.layer.bounds

        let width = self.layer.frame.size.width
        let height = self.layer.frame.size.height

        let path = CGPathCreateMutable()

        CGPathMoveToPoint(path, nil, 0, 0)
        CGPathAddLineToPoint(path, nil, width, 0)
        CGPathAddLineToPoint(path, nil, width/2, height)
        CGPathAddLineToPoint(path, nil, 0, 0)

        mask.path = path
        self.layer.mask = mask
    }
}