Где находится начало системы координат (0,0) в UIKit?

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

Ответ

В UIKit начало системы координат (origin) находится в верхнем левом углу.

Основные правила:

  1. Ось X: Увеличивается вправо.
  2. Ось Y: Увеличивается вниз.

Пример размещения view:

// View будет расположен в 50 пунктах от левого края
// и в 100 пунктах от верхнего края родительской view
let blueView = UIView(frame: CGRect(x: 50, y: 100, width: 120, height: 80))
parentView.addSubview(blueView)

Важные нюансы:

  • Система координат относительна. Координаты UIView задаются относительно границ (bounds) ее супервью (родителя).
  • Исключение — UIWindow: Его система координат привязана к физическому экрану устройства, с началом в верхнем левом углу с учетом ориентации.
  • Отличие от Core Graphics: В некоторых низкоуровневых контекстах Core Graphics (например, при рисовании в CGContext) начало координат по умолчанию может быть в нижнем левом углу. UIKit автоматически настраивает контекст в draw(_:), чтобы согласовать это.

Практическое следствие: При вычислении позиций помните, что view.frame.origin.y = 0 означает «прижат к верху родителя», а не ко дну.