Для точного рендеринга любого вида системе необходимо однозначно знать, что это - положение и размер.
Рассмотрим простой сценарий, в котором вы пытаетесь разместить «прямоугольник» высотой «Y» и ширину «X» в центре экрана, автоматическая компоновка должна знать это значение. Вы передаете это, устанавливая 4 ограничения:
- ограничение по высоте
- ограничение по ширине
- по вертикали в ограничении контейнера (или centerYAnchor)
- по горизонтали в контейнере ограничение (или centerXAnchor)
Любое большее или меньшее количество ограничений, вероятно, добавит двусмысленности с точки зрения позиционирования или измерения.
В другом примере, где ваш «прямоугольник» должен всегда должно быть 10 точек от всех краев родительского представления, вам просто нужно указать -
- Ведущий якорь прямоугольника должен быть 10 точек относительно (относительно) ведущей привязки родительского представления
- Конечная привязка прямоугольника должна быть -10 точек относительно конечной привязки родительского представления
- Верхняя привязка прямоугольника должна быть 10 точек относительно верхней привязки родительского представления
- Нижняя привязка прямоугольника должно быть -10 точек относительно нижней привязки родительского представления
Обратите внимание, что конечная привязка и нижняя привязка не используются gative, потому что вы размещаете привязки дочерних представлений перед соответствующими источниками этих родительских привязок. Кроме того, в этом случае вам не нужно указывать высоту или ширину, потому что данные ограничения неявно определяют это динамически по отношению к размерам устройства.
Это всего лишь 2 очень простых сценария ios, но если вы попробуете рендеринг и игра с использованием этого logi c (программно или через раскадровку), это прояснит ситуацию.
Но на самом деле это лишь царапина на поверхности. Чтобы действительно погрузиться в глубину, я рекомендую изучить этот раздел в документации по автоматической компоновке - ' Анатомия ограничения '