添加/删除注释时是否有办法避免“闪烁”动画

时间:2019-05-03 14:02:21

标签: swift ios-pdfkit

我正在处理PDF Edition应用程序,但遇到了一个奇怪的问题。 我正在使用Xcode 10.2和iOS 12.2。

当我在PDFView上绘制注释时,注释在屏幕上显示的越大,重新绘制时闪烁的次数就越多。

我不知道问题是否来自我的PDFAnnotation子类的draw函数

class PDFDrawingAnnotation: PDFAnnotation {
   public var path: UIBezierPath!

  func completed() {
    add(path)
  }

   override func draw(with box: PDFDisplayBox, in context: CGContext) {
    let pathCopy = path.copy() as! UIBezierPath
    UIGraphicsPushContext(context)
    context.saveGState()

    context.setShouldAntialias(true)
     color.set()
     pathCopy.lineJoinStyle = .round
     pathCopy.lineCapStyle = .round
     pathCopy.lineWidth = border?.lineWidth ?? 1.0
     pathCopy.stroke()

     context.restoreGState()
     UIGraphicsPopContext()
    }
  }

或者通过我在页面上添加注释的函数

    private func redraw(annotation: PDFAnnotation, onPage: PDFPage) {
       if onPage.annotations.contains(annotation) {
        onPage.removeAnnotation(annotation)
      }
    onPage.addAnnotation(annotation)
    delegate?.addUndo(annotation)
}

任何帮助将不胜感激。

0 个答案:

没有答案