У меня есть UITableView
, который заполнен некоторыми данными, но поскольку он содержит данные, которые содержат больше ячеек, чем область просмотра на экране, мне удалось получить только снимок это, я хочу знать, есть ли какой-либо другой способ, я могу получить весь Tableview снимок в pdf..this то, что я пытался благодаряКак получить снимок UITableView в формате 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! Я не знал этого, вы должны принять свой собственный ответ, – Jano
Привет, Спасибо за этот код. Я изо всех сил пытаюсь это сделать. Я не уверен, что я делаю неправильно. Я использовал этот код, но он не работает после прокрутки таблицы. Можете ли вы, пожалуйста, проверить мой вопрос и дать свои мысли? -http: //stackoverflow.com/questions/17771112/ios-rendering-uitableview-into-pdf Было бы очень благодарно. – applefreak
Спасибо, очень полезно, также не забывайте, что UITableView унаследован от UIScrollView, поэтому можно сделать такую вещь: CGFloat screensInTable = self.tableView.contentSize.height/self.tableView.frame.size.height; for (int i = 1; i