Какой элемент UIKit позволяет изменять origin у bounds?

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

Ответ

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

Основное применение:

  • UIScrollView динамически меняет bounds.origin для реализации скроллинга.
  • Ручное смещение контента внутри кастомной вью.

Пример:

let myView = UIView(frame: CGRect(x: 50, y: 50, width: 200, height: 200))
// Смещаем начало системы координат вью на (-20, -10).
// Это сдвинет все её подвью и контент (например, изображение в UIImageView).
myView.bounds.origin = CGPoint(x: -20, y: -10)

Важно: Изменение bounds.origin не меняет frame.origin. Оно влияет только на отрисовку внутреннего содержимого и расположение подвью относительно родителя.