我正在尝试添加一个突出显示PDFView
部分的图层。
当我生成PDF时,我已经保存了PDF文档的三个区域。在其下方的metadata.headerRect
,metadata.weekdayRect
和metadata.daysRect
如果我使用drawPagePost
(https://developer.apple.com/documentation/pdfkit/pdfview/1642236-drawpagepost)突出显示这些区域,则会将其绘制在正确的位置。
override func drawPagePost(_ page: PDFPage, to context: CGContext) {
context.setFillColor(UIColor.blue.withAlphaComponent(0.25).cgColor)
context.fill(metadata.headerRect)
context.fill(metadata.weekdayRect)
context.fill(metadata.daysRect)
}
但是,如果我使用`PDFView的功能:
// Converts a rect from page coordinates to view coordinates.
open func convert(_ rect: CGRect, from page: PDFPage) -> CGRect
以下方式:
let path = CGMutablePath()
selectedBox.strokeColor = UIColor.red.withAlphaComponent(0.25).cgColor
selectedBox.fillColor = UIColor.red.withAlphaComponent(0.25).cgColor
selectedBox.frame = bounds
path.addPath(UIBezierPath(rect: convert(metadata.headerRect, from: document!.page(at: 0)!)).cgPath)
path.addPath(UIBezierPath(rect: convert(metadata.weekdayRect, from: document!.page(at: 0)!)).cgPath)
path.addPath(UIBezierPath(rect: convert(metadata.daysRect, from: document!.page(at: 0)!)).cgPath)
selectedBox.path = path
这三个形状完全不合。如您在所附图像中看到的那样,红色区域没有覆盖其应有的内容。正确的区域是蓝色覆盖的区域。我希望蓝色和红色区域位于相同的位置。