Tengo un problema que no he podido descifrar. Tengo una aplicación que tomará una foto del frente y otra de la cámara trasera, y luego los fusionará.Cargar retina (alta calidad) imágenes programaticamente (en botones)
El nombre de la aplicación es GroupCam
Sin embargo, tengo un problema en el que mis UIButtons no se cargarán como imágenes de la retina desde el principio. Si los configuro como @ 2x en el constructor de interfaz, aparecen en alta calidad, pero una vez que los vuelva a cargar programáticamente, aparecerán las versiones bajas.
Esto se debe a que, después de tomar una foto y cambiar la pantalla, las imágenes del botón cambian, pero cuando el usuario presiona el botón Atrás los iconos de la cámara se verán horribles (porque las versiones de baja calidad se están cargando) .
favor verifique en los siguientes cuadros:
Primera pantalla: Sólo el botón superior derecho aparece distorsionada porque estoy comprobando el valor del flash de la cámara y la "carga" de la imagen correspondiente programación.
segunda pantalla: El usuario se ha movido a otra pantalla y volvió a la primera, todos los botones se volvieron a cargar y ahora todos se ven distorsionadas.
Si alguien tiene alguna idea de por qué está sucediendo esto realmente agradecería que!
Gracias.
Editar:
Así es como me carga las imágenes.
[self.flashButton setImage:[UIImage imageNamed:@"flashOff"]
forState:UIControlStateNormal];
Leí en algún lugar de internet que al hacerlo cargará automáticamente la versión más adecuada de la imagen.
También probé esto, pero el resultado es el mismo:
[self.takeButton setImage:[UIImage imageNamed:@"takePhoto.png"] forState:UIControlStateNormal];
He obtenido excelentes resultados utilizando imágenes normales y de retina en una aplicación. Entonces, lo que sugiero que hagas es seleccionar la resolución normal de estas imágenes, y no incluirlas en tu proyecto (a través del tercer panel situado más a la derecha, simplemente deselecciona la casilla de verificación). Ahora tu aplicación SOLO tiene imágenes de retina. Bueno, si las cosas van mal, entonces algo en tu aplicación se estropeó. Hay algún problema con [UIImage imageNamed: foo.png]. Si cambia esa imagen, todos los usuarios posteriores de esa imagen obtendrán la imagen modificada. Vuelva a leer UIImage imageNamed: –
Así que simplemente volví a leer su pregunta, y acabo de ver esta afirmación: "Si los configuro como" @ 2x "en el constructor de interfaz". Entonces, en IB, ha ingresado sus nombres como "[email protected]", y eso funciona. Entonces, lo único que puedo pensar que su problema podría ser es el formato de "@ 2x". ¿Estás SEGURO de haber nombrado correctamente esas imágenes? "[email protected]", NOT & 2x.png, etc. Parece que iOS no ve los archivos hi rez y esa es la ÚNICA razón que se me ocurre que lo explicaría . Intente eliminar el "@ 2x" en IB y vea qué sucede. Apuesto a que tienes todo bajo rez todo el tiempo entonces. –
sí están formateados y nombrados correctamente. Las imágenes se cargarán en HD perfectamente bien por sí mismas, el único problema es cuando las cargo programáticamente. iOS decide cargar uno de baja definición. – Pochi