Mam UITableView
, który jest wypełniony pewnymi danymi, ale ponieważ zawiera dane, które są bardziej komórkowe niż widoczny obszar ekranu, udało mi się uzyskać tylko migawkę to, chcę wiedzieć, czy istnieje inny sposób mogę dostać całą migawkę tableview w pdf..this co próbowałem dziękiJak uzyskać migawkę UITableView w formacie 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];
}
Nice! Nie znałem tego, powinieneś zaakceptować własną odpowiedź, – Jano
Cześć, dzięki za ten kod. Próbowałem to zrobić. Nie jestem pewien, co robię źle. Użyłem tego kodu, ale wydaje się, że nie działa po przewinięciu tableview. Czy możesz proszę sprawdzić moje pytanie i podać swoje przemyślenia proszę -http: //stackoverflow.com/questions/17771112/ios-rendering-uitableview-into-pdf Byłoby naprawdę wdzięczne. – applefreak
Dzięki, naprawdę użyteczne, również nie zapomnij, że UITableView odziedziczył z UIScrollView, więc możliwe do zrobienia coś takiego: CGFloat screensInTable = self.tableView.contentSize.height/self.tableView.frame.size.height; dla (int i = 1; i