Что такое points в iOS?

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

Ответ

Points (пойнты) — это абстрактные единицы измерения в UIKit, независимые от плотности пикселей экрана. Они позволяют задавать интерфейс в единой системе координат, которую система автоматически масштабирует под физические пиксели (pixels) устройства.

Соотношение points-to-pixels определяется масштабом экрана (UIScreen.main.scale):

  • @1x (non-Retina): 1 point = 1 pixel.
  • @2x (Retina): 1 point = 2×2 pixels.
  • @3x (Super Retina): 1 point = 3×3 pixels.

Практическое использование:

  • Все фреймы (CGRect), размеры и позиции в UIKit задаются в points.
  • В Interface Builder вы работаете исключительно с points.
  • Графические ресурсы (изображения) необходимо поставлять в трех вариантах: image.png (@1x), image@2x.png, image@3x.png.

Пример:

// Создаем view шириной и высотой в 100 points.
// На устройстве с @2x экраном она займет 200×200 физических пикселей.
let squareView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))

Ключевое преимущество: Разработчик проектирует макет один раз в points, а система обеспечивает четкое отображение на любом устройстве.