Das Festlegen der Bildeigenschaft von UIImageView führt zu einer starken Verzögerung

Lassen Sie mich Ihnen von dem Problem erzählen, das ich habe und wie ich versucht habe, es zu lösen. Ich habe eine UIScrollView, die Unteransichten lädt, während man von links nach rechts scrollt. Jede Unteransicht hat 10-20 Bilder mit einer Größe von jeweils ca. 400x200. Wenn ich von Ansicht zu Ansicht scrolle, spüre ich einiges an Verzögerung.

Nachdem ich nachgeforscht hatte, stellte ich fest, dass die Verzögerung nach dem Entladen aller Ansichten und dem erneuten Versuch weg war. Ich nahm an, dass das synchrone Zwischenspeichern der Bilder die Ursache für die Verzögerung war. Also habe ich eine Unterklasse von UIImageView erstellt, die die Bilder asynchron geladen hat. Der Ladecode sieht wie folgt aus (self.dispatchQueue gibt eine serielle Versandwarteschlange zurück).

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

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

Nachdem ich jedoch alle meine UIImageViews in diese Unterklasse geändert hatte, trat immer noch eine Verzögerung auf (ich bin nicht sicher, ob diese verringert wurde oder nicht). Ich kochte die Ursache des Problems aufself.image = image;. Warum verursacht dies so viel Verzögerung (aber nur bei der ersten Ladung)?

Bitte hilf mir. = (

Antworten auf die Frage(2)

Ihre Antwort auf die Frage