CGContextDrawPath 不会填充

CGContextDrawPath won't fill

我正在尝试填充我绘制的一些三角形,但它们没有填充。下面是在上下文中绘制的代码,正如您在图片中看到的那样,路径笔画很好。

func draw(context:CGContextRef) {
    CGContextBeginPath(context)
    CGContextMoveToPoint(context, self.peak.x, self.peak.y)
    CGContextAddLineToPoint(context, self.left.x,self.left.y)
    CGContextMoveToPoint(context, self.left.x, self.left.y)
    CGContextAddLineToPoint(context, self.right.x,self.right.y)
    CGContextMoveToPoint(context, self.right.x, self.right.y)
    CGContextAddLineToPoint(context, self.peak.x,self.peak.y)
    CGContextSetStrokeColorWithColor(context,UIColor.blackColor().CGColor)
    CGContextSetFillColorWithColor(context,UIColor.redColor().CGColor)
    CGContextDrawPath(context, kCGPathFillStroke)
}

我调用那个函数两次,输出是这样的。

我正在阅读 Quartz2D 编程指南,但不明白为什么这不会填满。这只是发生在从 UIView 继承的 class 的操场上,没什么特别的。

每次调用 CGContextMoveToPoint() 都会启动一个新的子路径, 然后它被填充,就好像你已经关闭它一样(并且没有任何东西 看看你是否填充了一个线段)。描边和填充 一个三角形,使用:

CGContextBeginPath(context)

CGContextMoveToPoint(context, self.peak.x, self.peak.y)
CGContextAddLineToPoint(context, self.left.x,self.left.y)
CGContextAddLineToPoint(context, self.right.x,self.right.y)
CGContextClosePath(context)

CGContextSetStrokeColorWithColor(context,UIColor.blackColor().CGColor)
CGContextSetFillColorWithColor(context,UIColor.redColor().CGColor)
CGContextDrawPath(context, kCGPathFillStroke)