0

49 個の画像を設定する IBAction があります。画像はメソッドの最後にのみ設定され、1 つずつではありません。なぜ正確にこれを行うのですか?メソッドの最後に一度に画像を設定するのではなく、画像を1つずつ設定するにはどうすればよいですか。1.4 秒のハングがあり、すべての画像が即座に設定されます。

4

1 に答える 1

0

私は、画像をバックグラウンドスレッドにロードする必要があるというMattの提案に同意します。

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

dispatch_async(queue, ^{

    for ( /* loop through my images */ )
    {
         // do whatever you need to do to load image (e.g. create your UIImageView, myImageView) 

         // now submit it to the main queue to be displayed, in this case, adding it to the scrollview that I use to hold all of my image thumbnails

         dispatch_async(dispatch_get_main_queue(), ^{
             [self.scrollView addSubview:myImageView];
         });
    }

});

すべてのUI更新はメインキューで行われる必要があるため、作成されたUIImageViewの追加はメインキューに送信されます。

于 2012-05-26T02:45:25.087 に答える