Pregunta

Tengo una secuencia de imágenes necesarios para mostrar en un (secuencia de PNG) poco tiempo. Hay un total de 31 archivos PNG en total, cada una con el tamaño del archivo aproximadamente 45KB. Ya las he cargado con los siguientes códigos:

imgArray = [[NSMutableArray alloc] init];
for(int i = 0; i <= 30; i++) {
    NSString * filename = [NSString stringWithFormat:@"img_000%.2d.png", i];
    UIImage *temp = [UIImage imageNamed:filename];
    [imgArray addObject:temp];
    [temp release];
    temp = nil;
} 

Yo uso los siguientes códigos para la visualización de las imágenes:

CGImageRef image = [(UIImage *)[imgArray objectAtIndex:imgFrame] CGImage];
imgLayer.contents = (id)image;
if(imgFrame < 29) {
    imgFrame++;
} else {
    imgFrame = 0;
    imgLayer.hidden = TRUE;
    [imgTimer invalidate];
}

donde imgLayer es un CALayer. (ImgTimer es un temporizador de repetición con 0.03s intervalo)

Sin embargo, he encontrado que cuando llamo a cabo las imágenes, es muy perezoso en la primera vez. Excepto la primera aparición, otro aspecto tiene ningún problema.

¿Está relacionado con la precarga de imágenes? O son mis imágenes demasiado grande en tamaño del archivo?

¿Fue útil?

Solución

La razón de sus desfases son difícil de decir sin datos de perfiles. Pero aquí es un truco que puede ayudar: Join todas sus imágenes en un archivo grande. Trate de hacerlo rectangular (6x6 quizá en su caso o 4 * 8). A continuación, cargue este archivo único y recortar cada imagen fuera de la pantalla (es decir, crear una imagen para su visualización con el tamaño de una baldosa y copiar un azulejo de la imagen grande después de la otra en la imagen de la pantalla).

Otros consejos

Las imágenes se cargan cuando se utilizan y se muestran. Si utiliza el generador de perfiles vez en Instrumentos, tendrá el retraso que está experimentando. Si a continuación el zoom hasta que lag y ver lo que está haciendo que, por lo general, se verá que "copyImageBlockSetPNG" es la función de tomar tiempo, justo antes de "inflar".

Lo que debe encontrar una manera de hacer es crear las imágenes y fuerza de carga antes de que los necesite. Esa es otra historia aparentemente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top