1

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」は更新しません。

4

1 に答える 1