我有一個UIView在底部包含許多東西,包括UITableView。我需要打印此頁面並在最終產品中顯示所有行,但我遇到了當前在TableView中不可見的行的問題。在UIView中創建UITableView的PDF,所以所有行打印
我目前試圖獲得最終產品是將我的視圖轉換爲PDF格式,並且我已經準備好了Apple的繪圖和打印指南,但它並未提供我需要的所有步驟。
如何打印一個UIView並讓UIView中的所有TableView行顯示在打印中?
我有一個UIView在底部包含許多東西,包括UITableView。我需要打印此頁面並在最終產品中顯示所有行,但我遇到了當前在TableView中不可見的行的問題。在UIView中創建UITableView的PDF,所以所有行打印
我目前試圖獲得最終產品是將我的視圖轉換爲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;
}