à partir de la référence UIImage,
taille
Les dimensions de l'image, en tenant compte de l'orientation. (lecture seulement)
@property(nonatomic, readonly) CGSize size
Discussion
Dans iOS 4.0 et versions ultérieures, cette valeur reflète la taille logique de l'image et est mesurée en points. Dans iOS 3.x et versions antérieures, cette valeur reflète toujours les dimensions de l'image mesurées en pixels.
Quelle est la différence entre pixel et points?
Un pixel sur iOS est la pleine résolution de l'appareil, ce qui signifie que si j'ai une image de 100 x 100 pixels de longueur, le téléphone la rendra 100 x 100 pixels sur un appareil non rétinien standard. Cependant, comme les nouveaux iPhones ont une densité de pixels quadruplée, cette même image sera rendue à 100x100 pixels, mais aura la moitié de cette taille. Les ingénieurs iOS ont résolu cela il y a longtemps (il y a bien longtemps dans OS X avec Quartz) en présentant le système de points de Core Graphics. Un point est une longueur standard équivalente à 1x1 pixels sur un dispositif non rétinien et 2x2 pixels sur un dispositif rétinien. De cette façon, votre image 100x100 rendra deux fois la taille sur un appareil rétine et normalisera essentiellement ce que l'utilisateur voit.
Il fournit également un système de mesure standard sur les appareils iOS car, quelle que soit la variation de la densité de pixels, il y a toujours eu 320x480 points sur un écran iPhone et 768x1024 points sur un écran iPad. *
Mais en même temps, vous pouvez fondamentalement ignorer la documentation étant donné que les appareils rétine ont été introduits avec iOS 4 au minimum, et je ne connais pas trop de gens qui exécutent encore iOS 3 sur un iPhone plus récent. Mais si un tel cas se présente, votre UIImage devrait être rendu exactement au double de ses dimensions en pixels sur un iPhone rétine pour compenser la différence de densité de pixels.
* À partir de l'iPhone 5, les dimensions de l'iPhone ne sont plus normalisées. Veuillez utiliser les API appropriées pour récupérer les dimensions de l'écran ou utiliser des contraintes de disposition.
Ces gars ont fait un travail formidable, jetez un œil ici - Le guide ultime des résolutions iPhone .
En utilisant les données de http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions J'ai mis en place la formule sqrt (pointWidth ^ 2 + pointHeight ^ 2)/diagonalInches to figure combien de points chaque téléphone affiche par pouce.
Résultats:
iPhone 2G, 3G, 3GS, 4, 4s = 164,825201164068082 points par pouce
iPhone 5, 5s = 162,9846618550346903
iPhone 6 = 162.8061416117083255
iPhone 6 Plus = 153,535954278463216
Comme vous pouvez le constater, un point a à peu près la même taille sur chaque téléphone. En utilisant la même page Web, vous pouvez configurer la même formule avec les valeurs de pixels, et vous remarquerez de grandes irrégularités en raison de densités de pixels plus élevées sur les téléphones plus récents.