2014-06-10 17 views
14

Może to zabrzmieć głupio, ale kiedy pracuję z rozmiarami w Xcode, całkowity rozmiar ramki wynosi 320 * 568 (szerokość * wysokość). Pasuje mi to. Ale rozdzielczość telefonu jest w rzeczywistości inna. IPhone 4S ma 640 * 960 & 5, a kolejne generacje 640 * 1136.Co to jest jednostka miary w Xcode

wiem ostatnia jest dokładnie dwukrotnie co Xcode używa jako jednostki, więc moje pytanie brzmi:

Co jednostka miary używa XCode? Jeśli piksele, dlaczego nie używać rozmiaru/rozdzielczości telefonu jako odniesienia?

+0

Nie wiem, czy dobrze zrozumiałem Twój problem, ale rozszerzyłem moją odpowiedź, aby pomóc Ci lepiej. –

Odpowiedz

15

Wykorzystuje punkty. W urządzeniach siatkówki 1 punkt to dwa piksele. W urządzeniach innych niż siatkówka 1 punkt to 1 piksel.

Zapoznaj się z dokumentacją Apple dotyczącą rysowania i drukowania na ios. https://developer.apple.com/library/ios/documentation/2ddrawing/conceptual/drawingprintingios/GraphicsDrawingOverview/GraphicsDrawingOverview.html#//apple_ref/doc/uid/TP40010156-CH14-SW7

Specjalnie sekcji "Punkty Versus pikseli"

Edytuj Aby odpowiedzieć na iPhonie 4S vs 5 i nowej generacji pytanie. Są to rzeczywiste rozmiary ekranu. Rezolucje są różne. IPhone 4S i 4 ekrany mają wymiary 320 x 480 lub 640 x 960 pikseli. Ekrany iPhone 5, 5C i 5S mają wymiary 320 x 568 lub 640 x 1136 pikseli. Jeśli pracujesz z Xibs, możesz zobaczyć jeden z poprzednich rozmiarów, ponieważ Xibs mają zdefiniowany rozmiar. W tym miejscu pojawiają się ograniczenia układu graficznego. Mówisz na XIB lub w serii ujęć, jak chcesz zmienić rozmiar/przesuwać elementy na ekranie. Być może używasz rozpór i sprężyn, aby zdecydować, jak przenieść elementy w widoku zamiast automatycznego układu. W porządku. Nawet jeśli Twój xib/storyboard ma rozmiar iphone5, jeśli sprawdzasz rozmiar ekranu w metodach viewDidAppear podczas uruchamiania aplikacji na symulatorze lub urządzeniu iPhone4/4S, zobaczysz, że granice widoku mają rozmiar odpowiedniego urządzenia . Lepiej używać punktów niż piksli, ponieważ pomaga to programistom abstrakcji z rozdzielczości. Nie musisz martwić się o to, ile pikseli jest punktem, po prostu lokalizuj elementy w punktach na ekranie i pozwól systemowi zadbać o rozdzielczość.

+0

Czytałem, że punkty w stosunku do pikseli zależą od stosunku PPP (punkty na piksel), a 1 punkt to dokładnie jeden piksel tylko przy użyciu 72pi (ponieważ jeden piksel = 1/72 punktu). Dlatego właśnie rządziłem tą odpowiedzią w pierwszej kolejności. Ale zgaduję, że twój link sprawi, że wszystko będzie dla mnie bardziej zrozumiałe ;-) –

+0

Punkty za piksele i punkty drukarki, zobacz moją odpowiedź tutaj http://stackoverflow.com/questions/8687124/printers-points-vs-ios- points/8687316 # 8687316 – jrturton

+0

Jeśli chodzi o kompletność, oto inny, który zadałem na [temat] (https://stackoverflow.com/questions/22138078/what-are-the-units-of-constraint-points-in-autolayout/22138205 # 22138205) –