ページングが有効になっている UIScrollView があり、画像付きの「ページ」を表示したいと考えています。
メインスレッドで最初のページの画像を読み込んで表示します。次に、バックグラウンド スレッドで他のページの画像の読み込みを開始します
dispatch_async(loadingImagesQueue, ^{
for (int i = 0; i < numberOfImages; i++) {
NSString *imagePath = [arrayWithImagePaths objectAtIndex:i];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Posting notification\n\n");
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_NAME_IMAGE_PREPARED object:image];
});
}
});
いくつかのメソッド呼び出しの通知を投稿した後、魔女は読み込まれた画像で新しいページを作成します。
画像の読み込みと新しいページ メソッドの作成にログ メッセージを挿入しました。画像の読み込みに関するメッセージと、新しいページの作成に関するメッセージが 1 つずつ表示されることを期待しています。
しかし、何らかの理由で、最初にすべての画像をロードし、その後で初めて新しいページの作成を開始します。ログメッセージで確認できます。そして最も奇妙なことは、最後の画像の読み込みが終了してから新しいページの作成が開始されるまでに大きな遅延 (約 0.5 秒) があることです。
この奇妙な動作の理由を説明できる人はいますか?