bottom - tab bar ios
Catálogo de activos especĂfico del dispositivo Xcode 6 (5)
Acabo de encontrar una nueva solución para este problema. Utilice la imagen de retina 4 para 2x y configure el modelo de contenido de la vista de la imagen en pantalla completa para que el relleno de aspecto de escala lo haga funcionar en iPhone 4s y iPhone 6.
Estoy intentando actualizar mi aplicación para los nuevos dispositivos 6 y 6+.
Agregué imágenes de lanzamiento para los nuevos tamaños de iPhone (6 y 6+). Hay entradas en el catálogo de activos tanto para el 6 como para el 6+. No hay problema allí.
También tengo algunas imágenes de superposición de vistas en pantalla completa que necesito agregar también. Ya tengo imágenes para estos en @ 2x (iPhone 4s) y R4 (iPhone 5 5s 5c). Creé imágenes con los nuevos tamaños de resolución, pero no estoy seguro de cómo agregarlas a un conjunto de imágenes.
Cuando entro en el catálogo de activos, puedo elegir el dispositivo específico en el conjunto de imágenes, y veo entradas para iPhone, retina-4 y iPad. Hay pozos de arrastrar / soltar para 1x, 2x, Retina 4 2x y 3x.
Mi pregunta: ¿dónde debería poner la imagen para el iPhone 6? Obviamente, el 3x es para los 6 más. No veo cómo el retina-4 se puede usar tanto para el iPhone 5 como para el iPhone 6 porque los tamaños de pantalla son diferentes.
¿Qué me estoy perdiendo?
Coloco aquí algunas de mis observaciones que hice para los dispositivos de iPhone (quizás alguien lo encuentre útil):
- iPhone 4S -
2x Any/Any
azulejos2x Any/Any
- iPhone 5 -
2x 1GB/Any
azulejo - iPhone 5S -
2x 1GB/Any
azulejo - iPhone 6 -
2x 1GB/Any
azulejo - iPhone 6 Plus -
3x 1GB/Any
azulejo
Para lograr esto, verifiqué Dispositivos - iPhone, Memoria 1GB. Como puede ver, no hay distinción para gráficos entre iPhone 5/5S/6
. Quizás jugar con ajustes para Metal 1v2/2v2
podría ser diferente, pero me parece que me estoy volviendo loco. La referencia de conocimiento comienza a las 10:50
Lo que obtuve de la WWDC en este momento deberíamos pensar en las especificaciones de resolución / dispositivo / dispositivo, pero nos enfocamos en las clases de tamaño (que son las mismas para iPhones excepto 6 Plus) pero si alguien todavía necesita, por alguna razón, gráficos específicos de ese dispositivo y quiere usar catálogos de activos (que son geniales), luego aquí obtienes lo que encontré disponible en este momento ( Xcode 7
).
Encontré esto útil: http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
Parece que el iPhone 6 usará una imagen muestreada @ 2x (iPhone 5). Además, las propiedades del conjunto de imágenes (panel de utilidades) le permiten cambiar entre los pozos de imagen ''Universal'' (x1, x2, x3) y ''específicos del dispositivo''.
Esto es realmente molesto Para la configuración específica del dispositivo, todos esperaríamos un menú como en LaunchImage Set, diferentes marcadores de posición para diferentes tamaños de pantalla.
Estoy bastante seguro de que esto es un error en Xcode 6. Cuando carga una imagen de un conjunto de imágenes del catálogo de activos, siempre obtendrá la entrada 3x para un iPhone 6+ ya sea que esté en modo zoom o en modo de visualización estándar. Para un iPhone 6, siempre obtendrá la entrada 2x en ambos modos. Para un iPhone 4s, también obtendrá la entrada 2x.
Todos estos dispositivos tienen diferentes escalas y relaciones de aspecto, por lo que esto no es aceptable para imágenes con precisión de píxeles. Mis imágenes son todas a pantalla completa y están destinadas a ser superposiciones, por lo que estaba viendo una ubicación incorrecta cuando estaba en modo zoom.
He solucionado este problema creando dos conjuntos de imágenes:
1) iPhone 6 / 6plus en modo estándar
1242x2208 imagen en la entrada 3x
750x1334 en la entrada 2x
2) iPhone 6 / 6Plus en modo zoom o iPhone 5
1125x2001 para la entrada 3x
640x1136 para la entrada 2x
640x1136 para la entrada R4-2x
Para que esto funcione, entonces necesito determinar si el dispositivo es uno de los nuevos y si están en modo zoom. En base a esta información, cargo la imagen desde el conjunto de imágenes correcto.
Este es el código que uso para determinar si el dispositivo es uno de los nuevos en modo zoom / estándar:
UIScreen *screen = [UIScreen mainScreen];
if (screen.scale == 3 && screen.currentMode.size.width == 1242 ||
screen.scale == 2 && screen.currentMode.size.width == 750) {
self.overlay = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"StdImageSet"]];
} else {
self.overlay = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ZoomedImageSet"]];
}
Esto es feo, y odio tener que hacer esto, ya que se supone que los conjuntos de imágenes eliminan este tipo de código. No he visto una mejor manera de evitar esto, y he archivado un error de radar (radar 18463463).