Ho uno UITableView
che è popolato con alcuni dati ma poiché contiene dati che sono più celle dell'area visualizzabile dello schermo, sono riuscito a ottenere solo l'istantanea di esso, voglio sapere se c'è qualche altro modo per ottenere l'intero snapshot Tableview in pdf..this è quello che ho provato grazieCome ottenere un'istantanea di UITableView in un formato PDF
- (IBAction)clickMe:(id)sender
{
UIView *viewToRender = self.myTableView;
CGPoint contentOffset = self.myTableView.contentOffset;
UIGraphicsBeginImageContext(viewToRender.bounds.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// KEY: need to translate the context down to the current visible portion of the tablview
CGContextTranslateCTM(ctx, 0, -contentOffset.y);
[viewToRender.layer renderInContext:ctx];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIImageView *myImage=[[UIImageView alloc]initWithImage:image];
UIGraphicsEndImageContext();
[self createPDFfromUIViews:myImage saveToDocumentsWithFileName:@"PDF Name"];
}
- (void)createPDFfromUIViews:(UIView *)myImage saveToDocumentsWithFileName:(NSString *)string
{
NSMutableData *pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData(pdfData, myImage.bounds, nil);
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
[myImage.layer renderInContext:pdfContext];
// remove PDF rendering context
UIGraphicsEndPDFContext();
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:string];
NSLog(@"%@",documentDirectoryFilename);
[pdfData writeToFile:documentDirectoryFilename atomically:YES];
}
Nizza! Non lo sapevo, dovresti accettare la tua risposta, – Jano
Ciao, grazie per questo codice. Ho faticato a farlo. Non sono sicuro di cosa sto sbagliando. Ho usato questo codice ma non sembra funzionare dopo aver scrollato tableview. Potete per favore controllare la mia domanda e dare i vostri pensieri per favore -http: //stackoverflow.com/questions/17771112/ios-rendering-uitableview-into-pdf Sarebbe davvero grato. – applefreak
Grazie, davvero utile, inoltre, non dimenticare che UITableView è stato ereditato da UIScrollView, quindi è possibile farlo: CGFloat screensInTable = self.tableView.contentSize.height/self.tableView.frame.size.height; per (int i = 1; i