我将我的UIBezierPath linejoinstyle设置为.round,除了当1个线段恰好回到上一个线段或线段之间的角度很小时,形成了一个尖锐的角,如下所示,效果很好>
路径初始化代码:
let path = UIBezierPath() // White path
let testPath = UIBezierPath() // Inner red path
// Setup initial path
self.path.lineWidth = 8
self.path.lineJoinStyle = .round
self.path.lineCapStyle = .round
// Setup inner red path
self.testPath.lineWidth = 1
self.testPath.lineJoinStyle = .round
self.testPath.lineCapStyle = .round
覆盖视图的绘制功能:
override func draw(_ rect: CGRect) {
self.color.setStroke()
self.path.stroke()
self.testColor.setStroke()
self.testPath.stroke()
}
我在touchesBegan,touchesMoved和touchesEnded重写中实现路径的构造,因为这是我正在构建的绘图工具-我正在使用addQuadCurve方法将点附加到路径中,并且未设置触摸方法中的路径。
如上所述,当我绘制锐利笔迹时,线连接似乎被切断。现在,根据此Stackoverflow post,此行为可能是一个错误,该错误已在iOS 7中得到解决(但根据用户向Apple提交的错误报告,该错误仅适用于iPad SDK)。
我的问题:我正在使用iOS SDK 12.1,所以这个问题是出于任何原因弹出旧错误,还是我丢失了某些东西?因为这仅在两条线段之间的角度几乎可以忽略不计时发生。我还向Apple和OpenRadar提交了一个错误报告,以防万一。