modelos - iphone xs
¿Tratar con imágenes de diferentes tamaños en un xib para iPhone5 frente a iPhone4? (1)
La publicación anterior aquí sobre la migración al iPhone 5 solo menciona agregar una imagen de inicio de tamaño nuevo * y tal vez usar AutoLayout si es necesario.
Pero tengo algunas xibs donde hay una imagen de fondo que llena toda la pantalla (tal vez minue la navegación y la barra de pestañas, dependiendo de la vista). Para admitir iPhone 5, ahora necesitaré diferentes imágenes para el tamaño de pantalla diferente, ¿cómo se trata esto en el xib o en otro lugar?
(* por cierto, ¿qué haces si la aplicación no utiliza una imagen de inicio?)
Aquí hay un enlace que realmente te ayudará. Guarde la imagen de inicio, iOS no selecciona automáticamente la imagen correcta si coloca un "[email protected]" al final del nombre del archivo. Hay un par de métodos de ayuda mencionados en el enlace anterior que facilitarán su trabajo.
He adoptado el código en los enlaces que mencioné anteriormente y aquí está la función auxiliar para Obj-C:
-(BOOL) IsTall
{
return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) && ([[UIScreen mainScreen] bounds].size.height * [[UIScreen mainScreen] scale] >= 1136);
}
Un poco de categoría también ayudaría.
@interface NSString (Special)
-(NSString*)correctImageNameForiPhone5
@end
@implementation NSString (Special)
-(NSString*)correctImageNameForiPhone5
{
if([self isTall])
return [email protected]_-; //Do the correct NSString magic here
else
return -originalImageName-;
}
@end
Finalmente, cuando estás accediendo al objeto UIImage:
NSString *filename = @"backgroundImage.png";
UIImage *img = [UIImage imageNamed:[filename correctImageNameForiPhone5]];
La suposición aquí es que usted tendría todos sus nombres de archivo de imagen específicos de iPhone5 terminando con "-568h @ 2x". Este ejemplo de código definitivamente no funcionará si lo dejas caer en tu proyecto, pero entiendes la idea. Necesita algunas correcciones de NSString.