Когда использовать Bound и когда использовать Frame

Я узнал, что

Границами UIView является прямоугольник, выраженный в виде местоположения (x,y) и размера (ширина, высота) относительно его собственной системы координат (0,0).

Рамка UIView - это прямоугольник, выраженный в виде местоположения (x,y) и размера (ширина, высота) относительно суперпредставления, в котором он содержится.

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

все дела? Есть ли необходимость использовать границы?

1 ответ

Решение

Из Руководства по программированию View:

  • Свойство frame содержит прямоугольник рамки, который определяет размер и местоположение представления в системе координат его суперпредставления.
  • Свойство bounds содержит прямоугольник bounds, который определяет размер представления (и его источник содержимого) в собственной локальной системе координат представления.

Рамка:

Свойства центра и фрейма используются главным образом для управления геометрией текущего вида. Например, вы используете эти свойства при построении иерархии представления или изменении положения или размера представления во время выполнения. Если вы изменяете только положение вида (а не его размер), предпочтительным способом является свойство center. Значение в свойстве center всегда допустимо, даже если в преобразование представления были добавлены коэффициенты масштабирования или поворота. То же самое не верно для значения в свойстве frame, которое считается недействительным, если преобразование представления не равно преобразованию идентичности.

Границы:

Вы используете свойство границ в основном во время рисования. Прямоугольник границ выражается в собственной локальной системе координат представления. Источник этого прямоугольника по умолчанию (0, 0), а его размер соответствует размеру прямоугольника рамки. Все, что вы рисуете внутри этого прямоугольника, является частью видимого содержимого представления. Если вы измените источник прямоугольника границ, все, что вы рисуете внутри нового прямоугольника, становится частью видимого содержимого представления.

Таким образом, вы делаете следующие вещи с рамкой:

  • изменение размера
  • перемещение / изменение положения

Ситуация, когда вы должны использовать границы:

  • когда вы рисуете внутри вида с границами, например, в drawRect: метод UIView,
  • добавление подпредставлений к границам родительских представлений
Другие вопросы по тегам