Ich zeichne eine Zeile mit PDFKit auf einer PDF. Ich außer Kraft berührt begann, bewegt usw., wie unten Berührungen auf dem pdfView des Document anmelden wie folgt:PDFs mit verschiedenen Koordinatensystemen annotieren
override func touchesMoved(_ touches: Set<UITouch>,
with event: UIEvent?) {
// 6
swiped = true
if let touch = touches.first {
let currentPoint = touch.location(in: pdfView.documentView)
drawLineFrom(fromPoint: lastPoint, toPoint: currentPoint)
addAnnotation(fromPoint: lastPoint, toPoint: currentPoint)
// 7
lastPoint = currentPoint
}
}
Doch wie Sie von meinem Bild unten (die schwarze Linie sehen kann, ist, wo ich den Bildschirm und die rote berühren Zeile ist, wo die Annotation gezeichnet wird). Das Berührungs-Koordinatensystem ist (0,0) oben links auf dem Bildschirm und das PDF ist von unten links (0,0) des Bildschirms annotiert.
Meine Add Anmerkungsfunktion ist wie folgt:
func addAnnotation(fromPoint: CGPoint, toPoint: CGPoint) {
let page = pdfView.document?.page(at: 0)
let bounds = CGRect(x: 0, y: 0, width: 600, height: 600)
let line = PDFAnnotation(bounds: bounds, forType: .line, withProperties: nil)
line.startPoint = fromPoint
line.endPoint = toPoint
line.startLineStyle = .none
line.endLineStyle = .none
line.color = .red
let border = PDFBorder()
border.lineWidth = 4.0
line.border = border
page?.addAnnotation(line)
}
Wie kann ich die Systeme ausrichten koordinieren, damit der Ort, wo ich auf dem Bildschirm berühren, wo die Anmerkung gezogen wird?