Как говорится в названии, мое приложение отлично выглядит на 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]))
Из моего понимания ограничений, если вы используете ограничения для размещения своих подзонов, они будут оставаться в одной позиции на разных устройствах. Тем не менее, я начинаю чувствовать, что я неправильно понял понятие ограничений.
Не могли бы вы, ребята, помочь мне в правильном направлении в отношении ограничений?
Ваша помощь очень ценится.
Да, вы неправильно поняли понятие ограничений. Предоставление постоянным значениям ограничений не приведет к тому, что приложение будет выглядеть одинаково на разных устройствах. Для этого вам нужно просто рассмотреть w/h текущего устройства, а затем пропорционально настроить вид вашего приложения в определенном соотношении.
Также, пожалуйста, посмотрите: Autolayout просмотра всегда одинакового размера на разных размерах экрана
Как использовать автоматическое определение масштаба для всех размеров экрана?
Учебное пособие: https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2