Как изменение свойства origin у Bounds влияет на UIView?

«Как изменение свойства origin у Bounds влияет на UIView?» — вопрос из категории UIKit, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Изменение bounds.origin смещает систему координат внутри вью относительно её собственного пространства, не изменяя положение вью (frame) в родительском контейнере. Это влияет на отрисовку внутреннего контента и расположение сабвью.

Пример:

// Сдвигаем начало координат вью на (20, 20)
view.bounds.origin = CGPoint(x: 20, y: 20)

Что происходит:

  1. Контент вью (например, изображение в UIImageView) визуально сдвинется на 20 точек влево и вверх.
  2. Сабвью остаются на тех же позициях относительно новой системы координат bounds.
  3. Положение вью (frame.origin) в родительской вью не изменится.

Важно: В отличие от изменения bounds.size, изменение bounds.origin не вызывает автоматический вызов layoutSubviews().