web-dev-qa-db-fra.com

Quelle est l'unité de mesure dans Xcode

Cela peut paraître idiot, mais lorsque je travaille avec des tailles dans Xcode, la taille totale de l’image est égale à 320 * 568 (largeur * hauteur). Cela me convient. Mais la résolution du téléphone est en réalité différente. L'iphone 4S est 640 * 960 & les 5 et les générations suivantes sont 640 * 1136.

Je sais que le dernier est exactement le double de ce que xcode utilise en unités, alors ma question est la suivante: 

Quelle unité de mesure XCode utilise-t-il? Si la résolution est en pixels, pourquoi ne pas utiliser la taille/résolution du téléphone Comme référence?

16
Gil Sand

Il utilise des points. Dans les dispositifs à rétine, 1 point est égal à deux pixels. Dans les appareils sans rétine, 1 point est égal à 1 pixel.

Consultez la documentation d'Apple sur le dessin et l'impression sur iOS. https://developer.Apple.com/library/ios/documentation/2ddrawing/conceptual/drawingprintingios/GraphicsDrawingOverview/GraphicsDrawingOverview.html#//Apple_ref/ doc/uid/TP40010156-CH14-SW7

Spécialement la section "Points par rapport aux pixels"

Éditer Pour répondre à votre question sur l'iphone 4S vs 5 et la prochaine génération. Ce sont les tailles d'écran réelles. Les résolutions sont différentes. Les écrans de l'iPhone 4S et 4 ont une résolution de 320x480 points ou 640x960 pixels. Les écrans d’iPhone 5, 5C et 5S ont une résolution de 320x568 points ou 640x1136 pixels. Si vous travaillez avec xibs, vous verrez peut-être l’une des tailles précédentes car elles ont une taille définie. C’est là que les contraintes de mise en page automatique entrent en jeu. Dans xib ou le storyboard, vous indiquez comment vous souhaitez que les éléments soient redimensionnés/déplacés à l’écran. Vous utilisez peut-être des jambes de force et des ressorts pour décider comment déplacer des éléments dans votre vue au lieu d'une mise en page automatique. C'est correct. Même si votre xib/storyboard est de taille iphone5, si vous vérifiez la taille de l'écran dans vos méthodes viewDidAppear lors de l'exécution de l'application sur un simulateur ou un appareil iPhone4/4S, vous verrez que les limites de votre vue avoir la taille du périphérique correspondant. Il est préférable d’utiliser des points au lieu de pixels car cela aide le développeur à soustraire des résolutions. Vous n'avez pas à vous soucier du nombre de pixels par point, vous devez simplement localiser des éléments à des points de l'écran et laisser le système s'occuper de la résolution à votre place.

19
The dude

Xcode 10.1, réponse de Swift 4.2

Xcode utilise des points. Mais en cas d’explication suivante, quel est le point et combien de pixels sont-ils pointés -> cela dépend du dispositif de rétine que vous utilisez. Fondamentalement sur les dispositifs non rétiniens 1 point = 1pixel. Sur les modèles iPhone 6plus et "plus" récents, Apple a ajouté une résolution 3x.  enter image description here

Sur les appareils rétiniens normaux, 1 point = 4 pixels, PAS 2 !! , Puis Apple compresse ce pixel en point. Sur les modèles iPhone plus, Apple utilise également le sous-échantillonnage avec le facteur 1.15, ce qui signifie par exemple avoir 1242 * 2208 alors il devrait être divisé sur 1.15 et vous obtenez votre fullHD 1080 * 1920 sur votre appareil. https://www.paintcodeapp.com/news/ultimate-guide-to-iphone- résolutions

 enter image description here

Je crois que la réponse principale, qui est:

Il utilise des points. Dans les dispositifs de rétine, 1 point est égal à deux pixels. Dans les appareils sans rétine, 1 point est égal à 1 pixel.

est erroné. J'ai fourni un lien vers developer.Apple.com.

https://developer.Apple.com/documentation/uikit/uiscreen/1617836-scale

 enter image description here

5
swift2geek
1
Alexander Lubyagin