Ответ
CGPoint оперирует точками (points), а не физическими пикселями.
- Точка (point) — это независимая от разрешения абстрактная единица в системе координат Core Graphics.
- Масштабирование точек в пиксели (pixels) выполняется автоматически системой с учетом масштабного коэффициента (scale factor) экрана.
- Стандартный экран: 1 point = 1 pixel (scale 1.0).
- Retina экран: 1 point = 2 pixels (scale 2.0) или 3 pixels (scale 3.0).
Пример и вывод:
let origin = CGPoint(x: 10, y: 20)
print(origin) // (10.0, 20.0) - это точки (points)
// На iPhone с Retina (scale 2.0) эти координаты займут:
// 10 points * 2.0 = 20 pixels по оси X
// 20 points * 2.0 = 40 pixels по оси Y
Практическое правило: Всегда проектируйте UI и анимации, работая с точками. Система сама позаботится о четком отображении на экранах с разной плотностью пикселей.