Как узнать, масштабируется ли приложение Springs and Struts в симуляторе iPhone 6?

У меня есть пара приложений, созданных с предварительным автоматическим макетом (но с Springs и Struts для поддержки iPhone 5+), которые я пробую в симуляторе iPhone 6 и 6 Plus, и они на самом деле выглядят довольно неплохо. Тем не менее, я не могу сказать, действительно ли пружины и распорки выполняют свою работу так сказать, или они просто масштабируются. Там должно быть что-то очевидное, что я скучаю, где это говорит, что? Кроме того, приложения автоматической разметки просто автоматически конвертируются при перекомпиляции с последним SDK для iPhone 6, чтобы они не просто масштабировались, если предоставляется 3X обложка (в случае 6 Plus)?

3 ответа

Решение

Вы можете легко увидеть, работает ли ваше приложение в режиме масштабирования, выведя границы и собственный экран границ основного экрана:

println("bounds = \(UIScreen.mainScreen().bounds)")
println("nativeBounds = \(UIScreen.mainScreen().nativeBounds)")

Без назначенных стартовых изображений выход симулятора iPhone 6 Plus:

bounds = (0.0,0.0,320.0,480.0)
nativeBounds = (0.0,0.0,960.0,1440.0)

Родные границы в 3 раза превышают масштабированные. Это причина @3x display.scale.

В случае iPhone 6 Plus nativeScale также помогает:

println("main screen native scale = \(UIScreen.mainScreen().nativeScale)")
println("main screen scale = \(UIScreen.mainScreen().scale)")

nativeScale всегда будет 3.0, scale будет 2.0 если симулятор делает масштабирование.

Чтобы получить полное представление о новых решениях, смотрите эту великолепную запись в блоге: http://www.paintcodeapp.com/news/iphone-6-screens-demystified

Используйте другой стартовый образ для iPhone 6, iPhone 6 Plus и всего остального. Если вы видите определенный образ обеда, вы знаете, что ваше приложение не масштабируется и работает в собственном разрешении устройства.

Единственный способ, которым я смог сказать, - это пойти домой и посмотреть, был ли текст в строке состояния меньше, чем в моем приложении. Меньшая строка состояния домашнего экрана означает, что она масштабируется. Если текст строки состояния в вашем приложении в симуляторе iPhone 6 имеет тот же размер, что и на главном экране симулятора, то вместо масштабирования он использует ваши пружины / распорки или автоматическое расположение

Другие вопросы по тегам