我正在使用带有TouchCanvas(Apple Pencil 示例应用程序)的 swift 2.3,
其中在绘画时,
我可以在钢笔/铅笔/画笔/橡皮擦之间切换 - 厚度和颜色,并且相应地应用相同。
现在我升级到了swift 3.0,
在哪幅画中,
当在钢笔/铅笔/画笔/橡皮擦 - 粗细和颜色之间切换时,最后选择的一个将应用于所有。
并且还尝试了苹果最新的铅笔API ..结果是一样的
可以请任何人告诉我确切的解决方案..
我正在使用带有TouchCanvas(Apple Pencil 示例应用程序)的 swift 2.3,
其中在绘画时,
我可以在钢笔/铅笔/画笔/橡皮擦之间切换 - 厚度和颜色,并且相应地应用相同。
现在我升级到了swift 3.0,
在哪幅画中,
当在钢笔/铅笔/画笔/橡皮擦 - 粗细和颜色之间切换时,最后选择的一个将应用于所有。
并且还尝试了苹果最新的铅笔API ..结果是一样的
可以请任何人告诉我确切的解决方案..
啊……经过长时间的尝试……找到了解决方案……
CanvasView.swift 上只有一行
override func draw(_ rect: CGRect) {
let context = UIGraphicsGetCurrentContext()!
context.setLineCap(.round)
needsFullRedraw = false //添加了这一行
if (needsFullRedraw) {
setFrozenImageNeedsUpdate()
frozenContext.clear(bounds)
for array in [finishedLines,lines] {
for line in array {
line.drawCommitedPointsInContext(frozenContext, isDebuggingEnabled: isDebuggingEnabled, usePreciseLocation: usePreciseLocations)
}
}
needsFullRedraw = false
}
frozenImage = frozenImage ?? frozenContext.makeImage()
if let frozenImage = frozenImage {
context.draw(frozenImage, in: bounds)
}
for line in lines {
line.drawInContext(context, isDebuggingEnabled: isDebuggingEnabled, usePreciseLocation: usePreciseLocations)
}
}
或者只是评论了以下行
/*if (needsFullRedraw) {
setFrozenImageNeedsUpdate()
frozenContext.clear(bounds)
for array in [finishedLines,lines] {
for line in array {
line.drawCommitedPointsInContext(frozenContext, isDebuggingEnabled: isDebuggingEnabled, usePreciseLocation: usePreciseLocations)
}
}
needsFullRedraw = false
}*/