При отображении табличного представления в pdf, когда в табличном представлении много содержимого. Он отлично работает на iOS версиях ниже iOS 13. Вот код для экспорта
extension UITableView {
func pdfDataWithTableView() -> String {
let priorBounds = self.bounds
let fittedSize = self.sizeThatFits(CGSize(width: priorBounds.size.width, height: self.contentSize.height))
self.bounds = CGRect(x: 0, y: 0, width: fittedSize.width, height: fittedSize.height)
let pdfPageBounds = CGRect(x: 0, y: 0, width: self.frame.width, height: priorBounds.size.height)
let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRect.zero, nil)
var pageOriginY: CGFloat = 0
let context = UIGraphicsGetCurrentContext()!
UIGraphicsBeginPDFPageWithInfo(self.bounds, nil)
while pageOriginY < fittedSize.height {
let rect = CGRect(x: 0, y: pageOriginY, width: pdfPageBounds.size.width, height: pdfPageBounds.size.height)
context.saveGState()
context.translateBy(x: 0, y: -pageOriginY)
self.scrollRectToVisible(rect, animated: false)
self.layer.render(in: context)
// context.restoreGState()
pageOriginY += pdfPageBounds.size.height
}
UIGraphicsEndPDFContext()
self.bounds = priorBounds
var docURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last! as URL
docURL = docURL.appendingPathComponent("myDocument.pdf")
pdfData.write(to: docURL as URL, atomically: true)
return docURL.absoluteString
}
}