実際、プロジェクト内のすべてのトランザクションの pdf ファイルを作成する必要があります。そこで、uiView、uitableView などを含む .xib を使用して PDFViewController クラスを作成します。
私はこのクラスをユーザーに表示していません。内部的に、このクラス ビューのスクリーン ショットを撮って、すべてのトランザクションの pdf を作成しています。
私の問題は、スクリーンショットビューとテーブルを取得できることですが、テーブルに多くの行があるため、テーブルビューのみのスクリーンショットを取得するにはスクロールする必要がありますが、スクロールはできません。
以下のコードを参照してください。ありがとう
@implementation PDFViewController
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier=@"PDFCustomCell";
PDFViewCustomCell *cell=(PDFViewCustomCell*)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==nil)
{
NSArray *nib=[[NSBundle mainBundle]loadNibNamed:@"PDFViewCustomCell" owner:self options:nil];
cell=[nib objectAtIndex:0];
nib=nil;
}
//@autoreleasepool {
PDFPrint *pdfObj=[self.arrProducts objectAtIndex:indexPath.row];
cell.unitPrice.text=[currencyFormator stringFromNumber:[NSNumber numberWithDouble:[pdfObj.unitPrice doubleValue]]];
UIImage* img = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@/downloads/%@/files/%@.jpg",del.LocalPath,del.CompFolder,del.RepId,pdfObj.code]];
if(img!=nil)
[cell.imageView setImage:img];
else
[cell.imageView setImage:[UIImage imageNamed:@"no_privew95x77.jpg"]];
pdfObj=nil;
return cell;
//}
}
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { NSLog(@"Array Count is = %i",[self.arrProducts count]); return [self.arrProducts カウント]; }
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 1 を返します。}
(void)viewDidLoad { [super viewDidLoad];
NSString* strlogopath = [NSString stringWithFormat:@"%@/%@/%@",del.LocalPath,del.CompFolder,del.CompInfo.ImageName]; [self.imgLogo setImage:[UIImage imageWithContentsOfFile:strlogopath]]; strlogopath = nil; [セルフフィルデータ];
} -(void)filldata { //ここでは、arrProduct NSMutableArray の多くのテーブルからデータを入力しています。コードが複雑になるため、StackOverflow の行数を削除しました。arrProduct のデータを正確に取得しています。
[self.arrProducts addObject:pdfData]; [SQLHelper finalizeStatement:stmt]; } @catch (NSException *exception) { NSLog(@"%@",exception.description); } @finally { [SQLHelper disconnectDB:database]; }
}
@終わり
// CurrentTransaction.m // currentTransaction.m では、self.pdfViewController ビュー bcoz を追加していません。表示する必要はありません。私はスクリーンショットを撮るだけで、PDFファイルを作成する必要があります。問題は、テーブルをスクロールして次の行のスクリーンショットを撮ることができないことです。
- (UIView *)loadTemplate:(PrintChoice_t)type { if (type==Small_Photo) { self.pdfViewController=[[PDFViewController alloc]initWithNibName:@"PDFViewController" bundle:[NSBundle mainBundle] ReferenceController:& self]; self.pdfViewController.view を返します。}
//このクラスのどこで私が呼び出しているか
[self.pdfViewController.tblProd scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:14 inSection:0] atScrollPosition:UITableViewScrollPositionNone アニメーション:NO];
//しかし、scrollToRowAtIndexPath は PDFViewController で CellForRowAtIndexPath を呼び出しません。デバッグ情報を表示できるのは 14 行のみ 0 位置 14 行が表示されます。