2012-03-21 7 views
4

안녕하세요, 저는 UITableView를 인쇄 할 수있는 iOS 응용 프로그램이 있습니다. 그러나 표시된 테이블 뷰의 일부만 인쇄됩니다. 아직 그려지지 않은 경우에도 전체 테이블 뷰를 인쇄하는 방법이 있습니까? 이 문제에 대한 많은 논의가있다화면에 내용이있는 UITableView를 인쇄 하시겠습니까?

UIGraphicsBeginImageContext(self.mainTableView.contentSize); 
[self.mainTableView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

UIPrintInteractionController *printer = [UIPrintInteractionController sharedPrintController]; 
printer.printingItem = viewImage; 
UIPrintInfo *info = [UIPrintInfo printInfo]; 
printer.printInfo = info; 
UIPrintInteractionCompletionHandler completionHandler = 
^(UIPrintInteractionController *pic, BOOL completed, NSError *error) { 
    if (!completed && error) 
     NSLog(@"FAILED! due to error in domain %@ with error code %u: %@", 
       error.domain, error.code, [error localizedDescription]); 
}; 
UIButton * printButton = (UIButton *)sender; 
if(UIUserInterfaceIdiomPad == [[UIDevice currentDevice] userInterfaceIdiom]){ 
    [printer presentFromRect:printButton.frame inView:self.view animated:YES completionHandler:completionHandler]; 
} else { 
    [printer presentAnimated:YES completionHandler:completionHandler]; 
} 

답변

3

: 여기

내가 인쇄에 사용하고있는 코드입니다. 두 가지 예 :

SO: Screenshot from a UITableView

SO: How to take an iPhone screenshot of entire view including parts off screen

문제는 UITableViews가 자신의 세포를 다시 사용할 수 있다는 것입니다.

  1. 스크롤 프로그래밍 방식 jQuery과의 다른 부분에, 다른 스크린 샷을 가지고 다시 함께 병합 : 내가 가장 일반적인 방법은 생각합니다.
  2. UITableView의 크기를 조정하여 모든 셀이 맞도록 조정하십시오. 경고 : 이로 인해 메모리 문제 (셀 재사용이 더 이상 필요하지 않음)가 빠르게 발생합니다. 따라서 스크린 샷 목적으로 셀 수를 크게 늘리지 마십시오.
관련 문제