2012-09-24 18 views
9

He visto un par de publicaciones sobre el UIImage cargando automáticamente la imagen del archivo-568.png en el nuevo iOS6, pero parece que no puedo recrearlo en la clase UIImageView.ios6 UIImageView - Cargando -568h image

Estoy usando Storyboard (no es mi aplicación, solo tengo que hacer algunas comprobaciones), y tengo un diseño simple con solo la Vista de imagen ajustada, sin código en el controlador de vista, y he Asegúrese de que nombre de archivo.png y nombre de archivo-568h.png existen (así como [email protected] por las dudas) pero cuando lo cargo en el simulador iOS6. Esto ha sido para iOS 4 y 5, al cargar la imagen @ 2x para retina, parece que no funciona en iOS6. ¿Algunas ideas?

La imagen pasa a llamarse Default.png ya que es la misma que la imagen de inicio, ¿podría ser este el problema?

Gracias por cualquier ayuda de antemano

+0

me pareció responder aquí: - http://stackoverflow.com/questions/12532405/images-for-iphone-5-retina-display - http://stackoverflow.com/questions/12431445/iphone -5-what-naming-convention-the-new-images-have-to-follow – Thesalan

Respuesta

32

iOS6 no se carga automáticamente -568h como lo hace con las imágenes @ 2x. La única excepción es la pantalla predeterminada, pero más allá de eso, usted mismo debe configurar manualmente la imagen 568h.

Creé un código para imitar el comportamiento de carga de imágenes de -568h cuando uso el método [UIImage imageNamed:@""], pero desde el IB no sé el camino. Si está interesado en tal solución, compruébelo en http://angelolloqui.com/blog/20-iPhone5-568h-image-loading

+0

En realidad, he encontrado que si especifico la imagen dentro de IB como dice "image.png", entonces no importa qué tipo de teléfono simulador que uso, carga el archivo correcto, [@ 2x] para retina de 3.5 "y [-568h @ 2x] para retina de 4". Si trato de codificarlo usando [UIImage imageNamed:], entonces no funciona. Impar. Voy a tener que hacer lo mismo que @Angel Garcia Olloqui arriba. – PKCLsoft

+1

Probé tu código y aunque funciona bien en el simulador, no se compila para un dispositivo real. El #include de no se compila. – PKCLsoft

+0

No consigo una cosa en el código: devolver el mismo método al final, ¿no crea un bucle recursivo? –

4

Normalmente, solo debe usar 568h para la imagen de inicio. Si observa que utiliza diferentes recursos de imagen dentro de su aplicación para la nueva altura de visualización, debe considerar que puede hacer que su UI sea demasiado estática.

El lugar más obvio que la gente quiere usar 568h para imágenes es para imágenes de fondo. Una alternativa es tener un solo recurso que tenga las dimensiones más grandes posibles y alinearlo correctamente utilizando la propiedad contentMode de UIView.

Pero quizás tenga algo flotando en la imagen en la parte superior e inferior, por lo que contentMode no lo resuelve. Podría considerar que los flotadores superior e inferior probablemente deberían ser vistas separadas de todos modos.

Recuerde, siempre hemos estado creando aplicaciones con alturas variables. Cada vez que aparece un teclado, es como si el tamaño de la pantalla se hubiera reducido.

+1

No estoy de acuerdo con su última oración, el teclado se muestra en la parte superior de una vista, no se contrae la vista en absoluto. Tendría sentido que iOS detecte de forma adecuada recursos de -568h, ya que maneja imágenes @ 2x y el sistema operativo necesita el -568h para la pantalla de inicio. Creo que nos obliga a escribir código horrible para manejar la relación de pantalla del iPhone 5. –

+0

Si crees que Apple te está forzando a "escribir código horrible", probablemente deberías darte un paso atrás y ver si estás violando innecesariamente cualquier convención de Apple. En iOS, eso generalmente resulta en más trabajo, menos recompensa. –