XCODE: ограничения ярлыков ведут себя странно

#ios #swift #xcode #view #constraints

#iOS #swift #xcode #Вид #ограничения

Вопрос:

У меня есть ярлык со следующими ограничениями:

Он отлично работает на iPhone 11, но для iPhone 8 он действует очень странно. Когда это iPhone 8 или телефоны такого размера, я изменяю константу верхнего ограничения с 29 до 10 и делаю то же самое для метки красной звездочки рядом с ней (от 25 до 6 для этого), но когда я запускаю его на небольших телефонах, таких как iPhone 8, он выглядит такэто:

Я перепробовал много способов исправить это, но безрезультатно. Вот ограничения для звездочки и представления ниже (в котором находится текстовое поле. Все, что вы можете видеть, это черная часть за пределами текстового поля.)

Звездочка:

Вид:

И на всякий случай, панель навигации вверху:

Ограничения, которые вы видите для панели навигации к ярлыку name и ярлыку name required, устанавливаются для каждой из этих меток соответственно. Он просто появляется в ограничениях панели навигации, потому что он применяется к нему. Как я уже сказал, я корректирую эти ограничения, когда телефон меньше, но, похоже, они не действуют. Я настраиваю константы ограничений на 10 для метки имени и 6 для метки требуемого имени (-19 для каждого). Любая помощь относительно того, почему представление по-прежнему выглядит странно, очень ценится.

Комментарии:

1. Вы на самом деле добавляете a UINavigationBar в качестве подвида? Или вы находитесь в навигационном контроллере?

2. Я на самом деле добавил в качестве подвида

Ответ №1:

Пара советов…

  • Делайте это шаг за шагом.
  • Придайте элементам пользовательского интерфейса контрастные цвета фона, чтобы было легче видеть рамки
  • Используйте панель предварительного просмотра при работе над макетом

Итак, добавьте свою панель навигации и установите ее ограничения:

введите описание изображения здесь

Добавьте свое имя и его метки со звездочками и установите их ограничения. Примечание: ограничьте верхнюю часть метки звездочки верхней частью метки имени, чтобы помочь сохранить их вместе:

введите описание изображения здесь

Добавьте текстовое поле своего имени и установите его ограничения:

введите описание изображения здесь

Добавьте свою предполагаемую высоту и метки звездочки:

введите описание изображения здесь

Текстовое поле предполагаемой высоты:

введите описание изображения здесь

Продолжайте, проверяя макет на панели предварительного просмотра и запуская приложение, чтобы перепроверить макет во время выполнения, добавляя каждый элемент по одному.

введите описание изображения здесь

Если макет внезапно меняется, вы знаете, что только что сделали что-то не так.

Комментарии:

1. тьфу, проблема заключалась в том, что мой вид imageview был ограничен нижней частью безопасной области, из-за чего все остальное сводилось к этому. Исправлено. Спасибо