2013-07-29 26 views
1

我有一個UIView在底部包含許多東西,包括UITableView。我需要打印此頁面並在最終產品中顯示所有行,但我遇到了當前在TableView中不可見的行的問題。在UIView中創建UITableView的PDF,所以所有行打印

我目前試圖獲得最終產品是將我的視圖轉換爲PDF格式,並且我已經準備好了Apple的繪圖和打印指南,但它並未提供我需要的所有步驟。

如何打印一個UIView並讓UIView中的所有TableView行顯示在打印中?

回答

0

嘗試contentSize方法,該方法從UITableView的超類UIScrollView繼承。但是,您可能會發現contentSize返回錯誤或過期值,因此應該先調用layoutIfNeeded重新計算表格的佈局。

[tableView layoutIfNeeded]; 

//允許您在繪圖週期發生之前執行佈局。 // - layoutIfNeeded會盡早強制佈局。所以它會正確返回大小。就像在做夢之前一樣。

CGSize newTableSize=tableView.contentSize; 
0
- (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; 
}