Приложение отлично смотрится на iPhone 6, но на других устройствах даже беспорядок

-3

Как говорится в названии, мое приложение отлично выглядит на iPhone 6, которое является устройством, которое я кодирую (фактическое устройство, а не симулятор), однако, когда я открываю приложение на другом устройстве, например, в качестве симулятора iPad Air2 или симулятора iPhone 7, приложение - полный беспорядок. Все подзоны объединены вместе.

В моем коде я программно размещаю subviews со следующим форматом ограничений:

view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-20-[v0]-230-|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": userIdLabel]))

view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-130-[v0]-510-|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": userIdLabel]))

Из моего понимания ограничений, если вы используете ограничения для размещения своих подзонов, они будут оставаться в одной позиции на разных устройствах. Тем не менее, я начинаю чувствовать, что я неправильно понял понятие ограничений.

Не могли бы вы, ребята, помочь мне в правильном направлении в отношении ограничений?

Ваша помощь очень ценится.

  • 1
    Трудно догадаться по тому, что вы сказали, но попробуйте использовать функцию отладки представлений Xcode во время работы приложения. Он может показать вам действующие ограничения, чтобы помочь диагностировать, почему вещи находятся там, где они есть.
Теги:

1 ответ

0

Да, вы неправильно поняли понятие ограничений. Предоставление постоянным значениям ограничений не приведет к тому, что приложение будет выглядеть одинаково на разных устройствах. Для этого вам нужно просто рассмотреть w/h текущего устройства, а затем пропорционально настроить вид вашего приложения в определенном соотношении.

Также, пожалуйста, посмотрите: Autolayout просмотра всегда одинакового размера на разных размерах экрана

Как использовать автоматическое определение масштаба для всех размеров экрана?

Как обращаться с размерами экрана iPhone 4s, 5 и 6 и сделать все содержимое одинаковым для всех устройств

Учебное пособие: https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню