2010-06-24 104 views
1

嘿傢伙,這是一個奇怪的問題。我正在做設備檢測,並且我注意到iphone 4報告與iphone 3g(s):320x480相同的分辨率。iPhone 4分辨率

不應該這樣更高?還是我錯過了什麼?

回答

3

Points Versus Pixels在這方面是一個很好看的:

在iOS中有你在指定座標之間的區別 您的繪圖代碼和底層設備的像素。使用 原生繪圖技術(例如Quartz,UIKit和Core Animation)時,可以使用邏輯座標空間指定座標值,該座標值以點爲單位測量距離。這個邏輯座標系是 與系統所使用的設備座標空間解耦以管理屏幕上的像素。系統 自動將邏輯座標空間中的點映射到設備座標空間中的像素,但該映射並不總是一對一地爲 。這種行爲導致一個重要的事實,你應該永遠記住:

一點不一定對應於屏幕上的一個像素。

+1

該文檔似乎不再可用。我能找到的最接近的是:[支持高分辨率屏幕](http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreens/SupportingHiResScreens.html) – ThomasW 2011-12-07 10:39:10

+0

@ThomasW謝謝用於更新信息。我已經更新了指向當前文檔的答案。 – Shaji 2011-12-12 22:31:35

2

你錯過了什麼。如果我記得正確的話,在WWDC的「新可可觸摸」會話(會話101)中對此進行了描述。 (如果您是註冊的開發人員,可以在iTunes大學下載)

他們保持報告的維度相同,以確保iPhone 4和iPhone 3/3G/3Gs中的應用均可正確縮放。 1點不再是1個像素。

從本質上講,您最常用的更高分辨率的方面將是新的圖形資產。還有一個命名約定,它允許手機自動確定是否加載較低分辨率版本的資源(對於320x480型號)或較高分辨率版本(對於640x960型號)。

轉到Apple Developer Site,登錄並獲取這些視頻。偉大的東西從那裏出來。

(和男孩,我希望我不只是打破NDA)。

+0

好吧,我有蘋果開發,所以在我的書中,你沒事。 但謝謝。這個答案很多。我還沒有趕上我的wddc的東西。 – 2010-06-24 13:59:29

+1

你很快就會知道(關於打破NDA),黑色直升機通常需要半小時到一個小時才能到達。 – Ukko 2010-06-24 13:59:39

+0

@Ukko:半個小時?男人,你必須住在無處可去的地方。他們到這裏是5-10分鐘。 – 2010-06-27 23:35:37

0

即使屏幕分辨率不同,視網膜和標準像素顯示屏也使用相同的點系統。例如,這就是爲什麼在iPhone上 - 當詢問window.frame.size .. - 返回320X480時,即使iPhone有視網膜顯示。無論圖像分辨率如何,iOS都會根據點網格將圖像放置到位。該圖像分辨率也可以處理標準或視網膜顯示。

因此,總是創建尺寸爲視網膜像素顯示的圖像。

隨意打印出定製的繪圖紙(其尺寸和常用的組件包括在內),以幫助勾畫出你的意見(不是一切應該實現數字化:d)。http://achim.us/eli/iOS_Graph_Paper.pdf

0
NSLog(@"%f", [[UIScreen mainScreen] scale]); 

上面的語句將打印2 iPhone 4S,iPhone-5和1的iPhone 4或iPhone以前的型號。