我有一个 UIView 包含很多东西,包括底部的 UITableView。我需要打印此页面并在最终产品中显示所有行,但我遇到了当前在 TableView 中不可见的行的问题。
我目前获得最终产品的尝试是将我的视图转换为 PDF,并且我已经准备好 Apple 的绘图和打印指南,但它并没有提供我需要的所有步骤。
如何打印 UIView 并使 UIView 中的所有 TableView 行显示在打印中?
试试 contentSize 方法,它继承自 UITableView 的超类 UIScrollView。但是,您可能会发现 contentSize 返回的值不正确或过时,因此您可能应该首先调用 layoutIfNeeded 来重新计算表格的布局。
[tableView layoutIfNeeded];
// 允许您在绘制周期发生之前执行布局。//-layoutIfNeeded 提前强制布局。所以它会正确返回大小。就像做梦之前做的一样。
CGSize newTableSize=tableView.contentSize;
- (NSMutableData*)generatePDF {
NSMutableData * pdfData=[NSMutableData data];
[[NSBundle mainBundle] loadNibNamed:@"PDFView" owner:self options:nil];
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero,nil);
CGContextRef pdfContext=UIGraphicsGetCurrentContext();
UIGraphicsBeginPDFPage();
// update the UI elements (IBOutlet on xib file)
//PDFView is main view on xib file containing uitableview too
[self.PDFView.layer renderInContext:pdfContext];
// end PDF context.
UIGraphicsEndPDFContext();
return pdfData;
}