Я использую UIGraphicsBeginPDFContextToData для создания PDF-файлов с несколькими страницами.Все работает нормально ... Моя проблема в том, что когда приложение создает большее количество страниц для 1 PDF, оно на короткое время зависает, и я не контролирую пользовательский интерфейс.Файл PDF создан правильно, но я хочу показать экран загрузки или что-то в этом роде.Все, что я тестировал, как UIAlertView внутри UIActivityIndicator или просто UIActivityIndicator на панели инструментов, показывает ПОСЛЕ того, как 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;
}