Разница между прямоугольником рамки и прямоугольником выравнивания

может ли кто-нибудь объяснить, в чем разница между Прямоугольник и Выравнивание Прямоугольника на размер инспектор?

2 ответов


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

прямоугольник выравнивания основан на представлении содержимого элемента, автоматический макет использует прямоугольник выравнивания вместо прямоугольника рамки элемента. Работая с прямоугольниками выравнивания вместо рамок, Auto Layout гарантирует, что ключевая информация, такая как края и центр вида правильно рассмотрено во время компоновки. В отличие от фреймов, прямоугольник выравнивания вида должен быть ограничен основным визуальным элементом. Его размер должен оставаться неизменным, поскольку новые элементы отображаются в представлении.

рассмотрим левую сторону рисунка -1. Он показывает вид, нарисованный с тенью и значком. При выкладке этого вида вы хотите, чтобы Auto Layout фокусировался на выравнивании только основного элемента-синего прямоугольника-а не орнамента.

enter image description here

Рисунок - 1 : Прямоугольник выравнивания вида (центр) относится строго к основному визуальному элементу, который должен быть выровнен, без украшений.

центральное изображение на рисунке -1 выделяет прямоугольник выравнивания вида. Этот прямоугольник исключает все украшения, такие как тень и значок. Это часть представления, которую вы хотите, чтобы автоматический макет учитывал, когда он выполняет свою работу. Правый прямоугольник на рисунке -1 охватывает все визуальные элементы представления. Она охватывает тень и значок. Эти украшения могут потенциально отбросить выравнивающие функции вида (например, центр, дно и право), если они были рассмотрены во время компоновки.

enter image description here

рисунок -2 Auto Layout учитывает только прямоугольник выравнивания этого вида при его раскладке по центру в супервизоре. Тень и значок не влияют на его расположение.

ссылки: ссылке


от Apple Руководство По Автоматической Компоновке:

макет работает на прямоугольниках выравнивания, а не на кадрах

рассматривая макет, имейте в виду, что рамка элемента управления менее важно, чем его визуальная протяженность. В результате, орнаменты как тени и линии гравировки должны обычно игнорироваться для цели компоновки. Interface Builder игнорирует их при позиционировании виды на холсте-в следующем примере Aqua гид ( пунктирная синяя линия) выравнивается с визуальным экстентом кнопки, а не с рамкой кнопки (сплошной синий прямоугольник). enter image description here

разрешить макет на основе представления контента, а не рамка, представления обеспечивают прямоугольник выравнивания, который является макет на самом деле работает на. Чтобы определить, является ли переопределение правильно на OS X, вы можете установить NSViewShowAlignmentRects по умолчанию YES для построения трассы прямоугольник.

таким образом, всплывающее меню в Xcode предоставляет вам возможность просматривать и редактировать размер и положение вида на основе его выравнивания rect или прямоугольника кадра.