Estoy creando pequeñas imágenes de mosaico para almacenarlas en el disco y mostrarlas al usuario. Aquí está mi proceso actual para hacer esto:¿Manera segura de mostrar UIVIew a una imagen en el hilo de fondo?
- Crear un viewcontroller que representa la interfaz de usuario que quiero mostrar en pantalla
- obtener la vista de la viewcontroller y rinden una imagen de ella
- guardarlo en el disco y mostrarlo en pantalla más tarde
Estoy bloqueando cuando intento acceder a la vista del controlador de visualización. Cuando traté de investigar esto en línea, obtengo resultados contradictorios sobre si es seguro crear la vista en segundo plano. Estoy leyendo que la llamada a UIGraphicsGetCurrentContext debería ser segura para los subprocesos, pero ¿quizás no acceder a UIView en un hilo de fondo? Estoy escribiendo la aplicación para iOS 4 y superior. Aquí está el código que estoy usando (teja es la viewcontroller):
CGSize size = CGSizeMake(20.0f, 30.0f);
UIGraphicsBeginImageContext(size);
[tile.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
El accidente se produce al intentar acceder a la propiedad .Ver en el azulejo (EXC_BAD_ACCESS). El objetivo es renderizar una imagen en segundo plano para evitar que se bloquee la interfaz de usuario porque hay muchas teselas que procesar.
¿Hay una manera segura de hacerlo?
¿Alguna vez encontró una buena solución para esto? –
Me encontré con el mismo bloqueo. En función de [la documentación de Apple] (http://developer.apple.com/library/ios/#qa/qa1714/_index.html), 'renderInContext' PUEDE utilizarse en un hilo diferente. Sin embargo, en realidad, se bloquea misteriosamente. ¿Alguien encontró una solución a este problema? – Howy
¿Encontró una solución para esto, Mark? –