私はUIGraphicsBeginPDFContextToDataを使用して複数のページでPDFファイルを作成しています。すべてがうまくいっています...私の問題は、アプリケーションが1ページ分のPDFを大量に作成すると、短時間でフリーズし、UIを制御できないということです。 PDFファイルは正しく作成されていますが、ローディング画面などを表示したいのですが。 UIActivityIndicator内のUIAlertView、またはツールバーのUIActivityIndicatorのようにテストしたものはすべて、PDFの終了後に表示されます。iPadでアニメーションを読み込んでPDFを作成
NSDataオブジェクトを作成する私の方法です。 NSLogは正しい出力を表示します: 私は実際にPDFの作成の進捗状況をどのように表示するのか分かりません。現在のページを表示する簡単なUILabelは、私が必要とするものにすぎません。
- (NSData *)createPDFData:(int)type {
NSLog(@"START");
NSMutableData *pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData(pdfData, drawImage.bounds, nil);
if (type == 1) {
UIGraphicsBeginPDFPage();
if ([self loadPDFBackground]) [paperImage drawRect:paperImage.bounds];
[drawImage drawRect:drawImage.bounds];
} else if (type == 2) {
NSArray *images = [NSArray arrayWithArray:[self loadImagesForPDF]];
int imageCount = [images count];
for (int i=0; i<imageCount; i++) {
NSLog(@"%@", [NSString stringWithFormat:@"Page %i of %i", i+1, imageCount]);
drawImage.image = [images objectAtIndex:i];
UIGraphicsBeginPDFPage();
if ([self loadPDFBackground]) [paperImage drawRect:paperImage.bounds];
[drawImage drawRect:drawImage.bounds];
}
}
UIGraphicsEndPDFContext();
NSLog(@"END");
return pdfData;
}
完璧!どうもありがとう。 – HMMurdoc