Ustawienie właściwości obrazu UIImageView powoduje poważne opóźnienie

Pozwólcie, że opowiem wam o problemie, który mam i jak próbowałem go rozwiązać. Mam UIScrollView, który ładuje widoki jako jeden przewija od lewej do prawej. Każdy widok podrzędny ma 10-20 zdjęć po 400x200. Kiedy przewijam widok do widoku, mam sporo opóźnienia.

Po zbadaniu odkryłem, że po rozładowaniu wszystkich widoków i ponownym wypróbowaniu, opóźnienie zniknęło. Doszedłem do wniosku, że synchroniczne buforowanie obrazów było przyczyną opóźnienia. Dlatego utworzyłem podklasę UIImageView, która ładowała obrazy asynchronicznie. Kod ładowania wygląda następująco (self.dispatchQueue zwraca kolejkę wysyłki szeregowej).

- (void)loadImageNamed:(NSString *)name {
    dispatch_async(self.dispatchQueue, ^{
        UIImage *image = [UIImage imageNamed:name];

        dispatch_sync(dispatch_get_main_queue(), ^{
            self.image = image;
        });
    });
}

Jednak po zmianie wszystkich moich UIImageViews na tę podklasę nadal doświadczałem opóźnienia (nie jestem pewien, czy został on zmniejszony, czy nie). Sprowadziłem przyczynę problemu doself.image = image;. Dlaczego powoduje to tak duże opóźnienie (ale tylko przy pierwszym ładowaniu)?

Proszę pomóż mi. = (

questionAnswers(2)

yourAnswerToTheQuestion