¿Necesito un sufijo @ 3x en UIImage imageNamed?

Hay iPhone 6 y iPhone 6 plus disponibles en apple.

  • Tengo tres fotos, incluyendo @2x y @3x . Cuando carga la image usando UIImage imageNamed:
  • ¿Necesito agregar @3x ad al final del file? Mi convención de nomenclatura es pic.png , pic@2x.png , pic@3x.png .
  • ¿Debo hacer como primero comprobar que el dispositivo en ejecución sea iPhone 6 y luego [UIImage imageNamed:@"pic@3x.png"] o simplemente [UIImage imageNamed:@"pic"] y el dispositivo usará automáticamente la image correcta para el dispositivo correcto

Sol: [UIImage imageNamed:@"pic"] es suficiente en lugar de [UIImage imageNamed:@"pic.png"] .

Razón:

  • El dispositivo detecta automáticamente pic@2x.png y pic@3x.png una vez que se agrega a su proyecto.
  • Si no agrega ninguna image pic@2x.png o pic@3x.png significa que el dispositivo cargará pic.png automáticamente.
  • Entonces solo agrega esta línea [UIImage imageNamed:@"pic"] en su proyecto.
 [UIImage imageNamed:@"pic"] 

es suficiente.

Los sufijos (@ 2x para iPhone 4 a 6 y @ 3x para iPhone 6 plus) se agregan automáticamente si se encuentra la image con este sufijo.

TLDR: asegúrese de include imágenes @ 2x si está admitiendo iOS 6/7, o especifique "* @ 3x" en imageNamed.

Si respaldes la versión anterior de iOS (6/7), necesitas hacer 1 de 2 cosas.

Primera opción: incluye todas las versiones de una image (normal, 2x, 3x). Privilegiado.

Segunda opción: si solo incluye una image de @ 3x, [UIImage imageNamed"pic"] funcionará muy bien en iOS 8 (networkinguciendo la escala de la image 3x a 2x o tamaño 1x según sea necesario), sin embargo, falla en iOS 7 ya que iOS 7 estaba Nunca he tenido conocimiento de @ 3x. Debe usar [UIImage imageNamed"pic@3x"]