QuickLook フレームワークで印刷する複数ページの PDF を作成しようとしていますが、作成中に UI を更新できません (残りのページ数のカウントダウンをユーザーに表示してもらいたい)。次のコードは、レンダリングに時間がかかるコードの代わりにスレッド スリープ機能を使用して実行しようとしているものの単純化されたバージョンです。
- (void) testPDF
{
CGRect pageSize = CGRectMake(0.0f, 0.0f, 595.28, 841.89);
UIGraphicsBeginPDFContextToFile([self filePath], pageSize, nil);
{
UIGraphicsBeginPDFPage();
for( int y = 0; y < 5; y++ ) {
self.pageLabel.text = [NSString stringWithFormat:@"%d", y];
[[UIColor grayColor] set];
[@"test string" drawAtPoint:CGPointMake(0, y*20) withFont:[UIFont systemFontOfSize:15]];
NSDate *future = [NSDate dateWithTimeIntervalSinceNow: 1.0];
[NSThread sleepUntilDate:future];
}
}
UIGraphicsEndPDFContext();
}
現状では、私のコードは PDF をレンダリングしますが、IBOutlet の「pageLabel」は更新しません。