Что представляет собой свойство origin у CGRect (Bounds)?

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

Ответ

Свойство origin структуры CGRect (доступное как bounds.origin) — это точка типа CGPoint, которая определяет начало системы координат прямоугольника относительно его собственного верхнего левого угла.

Ключевые моменты:

  • Для bounds значение origin по умолчанию равно (0, 0). Это означает, что система координат вида начинается в его собственном верхнем левом углу.
  • Изменение bounds.origin сдвигает систему координат внутри вида, что влияет на положение его дочерних элементов (subviews).

Пример:

// Создаем view
let myView = UIView(frame: CGRect(x: 50, y: 50, width: 200, height: 100))
print(myView.bounds.origin) // CGPoint(x: 0.0, y: 0.0) - значение по умолчанию

// Сдвигаем начало координат внутри view
myView.bounds.origin = CGPoint(x: 20, y: 10)
// Теперь содержимое myView (например, дочерние view) будет отрисовываться
// со смещением на 20 точек вправо и 10 точек вниз относительно его рамки (frame).

Практическое применение: Изменение bounds.origin часто используется для реализации скроллинга или панорамирования содержимого внутри UIScrollView и его подклассов.