Что такое пиксель и очки в iPhone?
Из ссылки UIImage,
размер
Размеры изображения с учетом ориентации. (Только для чтения)
@property(nonatomic, readonly) CGSize size
обсуждение
В iOS 4.0 и более поздних версиях это значение отражает логический размер изображения и измеряется в точках. В iOS 3.x и более ранних версиях это значение всегда отражает размеры изображения в пикселях.
В чем разница между пикселем и точками?
4 ответа
Пиксель на iOS - это полное разрешение устройства, что означает, что если у меня есть изображение размером 100x100 пикселей, то телефон будет отображать его 100x100 пикселей на стандартном устройстве, не поддерживающем сетчатку. Однако, поскольку новые iPhone имеют плотность пикселей в четыре раза, это же изображение будет отображаться с разрешением 100x100 пикселей, но будет выглядеть вдвое меньше. Инженеры iOS решили это давно (еще в OS X с Quartz), когда они представили систему очков Core Graphics. Точка - это стандартная длина, эквивалентная 1х1 пикселю на устройстве без сетчатки и 2х2 пикселя на устройстве с сетчаткой. Таким образом, ваше изображение 100x100 будет визуализироваться в два раза больше на устройстве Retina и в основном нормализует то, что видит пользователь.
Он также обеспечивает стандартную систему измерения на устройствах iOS, потому что независимо от того, как меняется плотность пикселей, всегда было 320x480 точек на экране iPhone и 768x1024 точек на экране iPad.*
Но в то же время вы можете игнорировать документацию, учитывая, что устройства Retina были представлены как минимум с iOS 4, и я не знаю, чтобы слишком много людей все еще использовали iOS 3 на более новом iPhone. Но если возникает такой случай, ваш UIImage должен будет отображаться точно в два раза больше его размеров в пикселях на сетчатке iPhone, чтобы компенсировать разницу в плотности пикселей.
* Начиная с iPhone 5, размеры iPhone больше не стандартизированы. Пожалуйста, используйте соответствующие API для получения размеров экрана или использования ограничений макета.
Эти ребята проделали отличную работу, посмотрите здесь - Окончательное руководство по разрешению iPhone.
iOS пиксели, точки, единицы
Мы должны рассматривать их в контексте
- системы координат
- абсолютное и относительное позиционирование
Отличия
pixels
( абсолютный ) -pixel-based coordinate systems
текущего экрана . Используется в очень специфических случаях. НапримерCGImage
(ширина/высота требуемого изображения в пикселях),CGContext
points
(виртуальные пиксели, логические пиксели)( абсолютно ) — по умолчаниюPoint-based coordinate systems
. Это своего рода независимый от плотности пиксель — dp в Android.units
-unit coordinate systems
( родственник ). От0.0
к1.0
. НапримерCALayer.anchorPoint
,VNImageBasedRequest.regionOfInterest

Используя данные из http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions я установил формулу sqrt(pointWidth^2+pointHeight^2)/diagonalInches, чтобы выяснить, сколько точек отображается на каждом телефоне. на дюйм
Результаты:
iPhone 2G, 3G, 3GS, 4, 4s = 164,825201164068082 точек на дюйм
iPhone 5, 5s = 162,9846618550346903
iPhone 6 = 162.8061416117083255
iPhone 6 Plus = 153,535954278463216
Как вы можете сказать, точка примерно одинакового размера на каждом телефоне. Используя ту же веб-страницу, вы можете настроить ту же формулу со значениями пикселей, и вы заметите большие неровности из-за более высокой плотности пикселей на новых телефонах.