Вопрос проверяет понимание ретины и отображения графики с учётом различий в плотности дисплеев.
Points — логические единицы интерфейса, а pixels — физические точки на экране. Масштаб (scale) определяет, сколько пикселей приходится на один point. Получить его можно через UIScreen.main.scale, обычно 1×, 2× или 3×.
Определение:
1 point = scale физических пикселей.
На Retina экранах scale = 2 или 3.
Получение значения:
let scale = UIScreen.main.scale
print("Scale: \(scale)x")Пример:
На iPhone 8: bounds.size = 375×667 pt, pixels = 750×1334 px (scale = 2).
На iPhone 12 Pro: 390×844 pt, 1170×2532 px (scale = 3).
Использование:
При рендеринге кастомных CALayer или Core Graphics.
Для расчёта толщин, размеров изображений (@2x, @3x).
Вывод:
Разделение на points и pixels упрощает адаптацию интерфейса под разные плотности, а свойство scale позволяет корректно рассчитывать размеры в пикселях.