Pantalla de iPhone 4 "con xcassets que no tiran de la image correcta

Estoy intentando implementar usando Images.xcassets en un proyecto en el que estoy trabajando. Por lo que entiendo, puedo poner todas las imágenes de diferentes tamaños para diferentes dispositivos y luego llamar a [UIImage imageNamed: @ "name_of_image_set"] y devolverá la image correcta para el dispositivo en el que estoy trabajando.

Parece que está tirando de la image correcta para todo excepto el iPhone 5 / 5s / 5c con la pantalla de 4 ". Para ese tamaño de pantalla me da la image del iPhone @ 2x con la pantalla de 3,5".

Imagen de configuración en Images.xcassets

Aquí está el json que está incluido en la carpeta con las imágenes.

{ "images" : [ { "idiom" : "iphone", "scale" : "1x", "filename" : "bg.png" }, { "idiom" : "iphone", "scale" : "2x", "filename" : "bg@2x.png" }, { "idiom" : "iphone", "filename" : "bg-568h@2x.png", "subtype" : "retina4", "scale" : "2x" }, { "idiom" : "ipad", "scale" : "1x", "filename" : "bg~ipad.png" }, { "idiom" : "ipad", "scale" : "2x", "filename" : "bg@2x~ipad.png" } ], "info" : { "version" : 1, "author" : "xcode" } } 

Todo parece estar en order, ¿estoy mal entendido cómo se supone que funcionan las xcasassets?

Gracias

Joel Bell

Me encontré con este problema y el problema parece apuntar a versiones de iOS inferiores a 7.0. La solución para mí fue crear un set de imágenes por separado con una sola image @ 2x en él y crear una instancia del progtwig correcto mediante la detección del tamaño de pantalla del iPhone en el código como hecho aquí

Relacionado: ¿Por qué mi Catálogo de activos no devuelve imágenes R4?

Tuve el mismo problema pero solo en ios7 y cargué las imágenes mediante progtwigción, pero debería ser el mismo problema.

En mi opinión, DidLoad agregué:

 if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { // if iOS 7 self.edgesForExtendedLayout = UIRectEdgeNone; //layout adjustements } 

Básicamente, solo reconoce iOS7 y aplica algunos ajustes de layout. Después de agregar este código, se seleccionó la image correcta. Finalmente cargo mi image, que no tienes que hacer:

  [productview setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]]; 

Encontré esta respuesta también aquí en stackoverflow, pero no la encontré más.