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 определяет положение и размеры элемента относительно его собственной координатной системы.