Я пытаюсь создать PDF из всего содержимого tableView. Я пробовал (я думаю) все примеры из stackoverflow, и они работают только в том случае, когда таблицы tableView помещаются в одну страницу PDF. Любые данные, содержащие более 1 страницы, не могут быть сгенерированы.UITableView в PDF со многими страницами (невозможно сгенерировать)
В настоящее время, используя этот фрагмент: (извините, не помню автора)
var pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRectMake(0, 0, 612,792), nil);
UIGraphicsBeginPDFPage();
self.view.layer.renderInContext(UIGraphicsGetCurrentContext()!)
self.tableView.scrollRectToVisible(CGRectMake(0, 0, 1, 1), animated:false)
self.tableView.layer.renderInContext(UIGraphicsGetCurrentContext()!)
let screensInTable:CGFloat = self.tableView.contentSize.height/self.tableView.frame.height;
print("how many screens: \(screensInTable)")
for i in 1..<Int(screensInTable) {
let contentOffset = CGPointMake(0, CGFloat(i) * 100)//self.tableView.frame.height
print("content offset: \(contentOffset)")
self.tableView.setContentOffset(contentOffset, animated:false)
self.tableView.layer.renderInContext(UIGraphicsGetCurrentContext()!)
}
UIGraphicsEndPDFContext();
let activityViewController = UIActivityViewController(activityItems: [pdfData], applicationActivities: nil)
dispatch_async(dispatch_get_main_queue(), {
self.presentViewController(activityViewController, animated: false, completion: nil)
})
Проблема заключается в в строке: self.tableView.setContentOffset (contentOffset, анимированные: ложь) комментируя это, все страницы , но только первый имеет контент. при выходе, как это, в activityViewController-> предварительный просмотр печати бесконечно загрузки превью
Я также пытался оказать одного contentView ячейки, но при переборе tableView.subviews содержит только вид видимых ячеек
все еще не работает к сожалению :(закончил создание html и отправил его в виде отчета – repoguy