Автоматический макет Xcode - PullRequest
0 голосов
/ 05 мая 2020

Я новичок, и мне трудно понять Auto layout ограничения. Нужно ли для каждого объекта, помещенного в раскадровку, указывать ширину, высоту, а также ведущие и конечные ограничения, чтобы избежать сообщения об ошибке?

1 Ответ

0 голосов
/ 06 мая 2020

Для точного рендеринга любого вида системе необходимо однозначно знать, что это - положение и размер.

Рассмотрим простой сценарий, в котором вы пытаетесь разместить «прямоугольник» высотой «Y» и ширину «X» в центре экрана, автоматическая компоновка должна знать это значение. Вы передаете это, устанавливая 4 ограничения:

  1. ограничение по высоте
  2. ограничение по ширине
  3. по вертикали в ограничении контейнера (или centerYAnchor)
  4. по горизонтали в контейнере ограничение (или centerXAnchor)

Любое большее или меньшее количество ограничений, вероятно, добавит двусмысленности с точки зрения позиционирования или измерения.

В другом примере, где ваш «прямоугольник» должен всегда должно быть 10 точек от всех краев родительского представления, вам просто нужно указать -

  1. Ведущий якорь прямоугольника должен быть 10 точек относительно (относительно) ведущей привязки родительского представления
  2. Конечная привязка прямоугольника должна быть -10 точек относительно конечной привязки родительского представления
  3. Верхняя привязка прямоугольника должна быть 10 точек относительно верхней привязки родительского представления
  4. Нижняя привязка прямоугольника должно быть -10 точек относительно нижней привязки родительского представления

Обратите внимание, что конечная привязка и нижняя привязка не используются gative, потому что вы размещаете привязки дочерних представлений перед соответствующими источниками этих родительских привязок. Кроме того, в этом случае вам не нужно указывать высоту или ширину, потому что данные ограничения неявно определяют это динамически по отношению к размерам устройства.

Это всего лишь 2 очень простых сценария ios, но если вы попробуете рендеринг и игра с использованием этого logi c (программно или через раскадровку), это прояснит ситуацию.

Но на самом деле это лишь царапина на поверхности. Чтобы действительно погрузиться в глубину, я рекомендую изучить этот раздел в документации по автоматической компоновке - ' Анатомия ограничения '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...