La configuración de la propiedad de imagen de UIImageView causa un mayor retraso

Déjame contarte sobre el problema que estoy teniendo y cómo traté de resolverlo. Tengo un UIScrollView que carga subvistas a medida que uno se desplaza de izquierda a derecha. Cada subvista tiene 10-20 imágenes de alrededor de 400x200 cada una. Cuando me desplazo de una vista a otra, experimento un poco de retraso.

Después de investigar, descubrí que después de descargar todas las vistas y volver a intentarlo, el retraso había desaparecido. Pensé que el almacenamiento en caché síncrono de las imágenes era la causa del retraso. Así que creé una subclase de UIImageView que cargaba las imágenes de forma asíncrona. El código de carga se parece a lo siguiente (self.dispatchQueue devuelve una cola de envío serial).

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

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

Sin embargo, después de cambiar todas mis UIImageViews a esta subclase, todavía experimenté un retraso (no estoy seguro de si se redujo o no). Reduje la causa del problema paraself.image = image;. ¿Por qué esto causa tanto retraso (pero solo en la primera carga)?

Por favor, ayúdame. = (

Respuestas a la pregunta(2)

Su respuesta a la pregunta