Проблема при экспорте данных табличного представления в PDF в версии выше iOS версии 13 при большом количестве контента. Пробел после одного или ячеек - PullRequest
0 голосов
/ 20 февраля 2020

При отображении табличного представления в 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
    }
}
...