Ответ
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, а система обеспечивает четкое отображение на любом устройстве.