Frame vs Bounds в iOS
В iOS и macOS frame
и bounds
- это два различных прямоугольника, используемых для определения расположения и размеров визуальных элементов в пользовательском интерфейсе. Однако они имеют разные координатные системы и значения.
- frame:
frame
определяет расположение и размеры визуального элемента относительно его родительского представления (супервью).- Координаты
frame
измеряются в системе координат родительского представления. - Изменение
frame
элемента также изменяет его положение и размеры на экране. - Например, если вы устанавливаете
frame.origin.x
равным 100, это означает, что элемент будет сдвинут вправо относительно левого края его родительского представления на 100 пикселей.
- bounds:
bounds
определяет расположение и размеры визуального элемента относительно его собственной координатной системы.- Координаты
bounds
измеряются относительно верхнего левого угла самого элемента. - Обычно
bounds.origin
устанавливается в (0, 0), так что точка начала координат находится в верхнем левом углу элемента. - Изменение
bounds
не изменяет фактическое положение элемента на экране, но может изменить то, как его содержимое рисуется внутри этого элемента. - Например, если установить
bounds.origin.x
равным 100, это сдвинет содержимое элемента влево на 100 пикселей от его обычного положения.
Итак, основное различие между frame
и bounds
заключается в том, что frame
определяет положение и размеры элемента относительно его родительского представления, в то время как bounds
определяет положение и размеры элемента относительно его собственной координатной системы.