型号 | 螢幕尺寸(inch) | 邏輯分辨率(point) | 縮放因子(scale factor) | 實體分辨率(pixel) | 像素密度(PPI) |
iPhone3GS | 3.5 | 320 * 480 | @1x | 320 * 480 | 163 |
iPhone4/4s | 3.5 | 320 * 480 | @2x | 640 * 960 | 326 |
iPhone5/5s | 4 | 320 * 568 | @2x | 640 * 1136 | 326 |
iPhone6/6s | 4.7 | 375 * 667 | @2x | 750 * 1334 | 326 |
iPhone6Plus/6s Plus | 5.5 | 414 * 736 | @3x | 1242 * 2208 | 401 |
圖1
實體螢幕尺寸:一般用對角線的長度(英寸)來衡量,也就是你看到的實際大小。
邏輯分辨率是與實體螢幕尺寸對應的,隻是為了程式員更好的控制控件的位置,其反應到程式就是我們常用的frame。從圖1中可以看到,iphone3GS和iphone4/4s的實體螢幕大小相同,其frame(邏輯分辨率)也對應相同;iphone4/4s和iphone5/5s的螢幕尺寸不同,其邏輯分辨率也不同。
實體分辨率:指液晶屏最高可顯示的像素數,也就是一塊螢幕中含有多少個發光單元。同樣大小的螢幕,其發光單元的數量在制造的時候就已确定。比如iphone4/4s相對于iphone3GS來說,其螢幕大小沒變但是其實體分辨率就提高了,視覺效果就是變清晰了,也就是顆粒度變小了。
對于一個UIImage元素來說,如果不設定其frame,則其在螢幕中的大小會由圖檔的分辨率與該裝置的邏輯分辨率決定,比如有一張320*480分辨率的圖檔,分别顯示在未設定frame的UIImage的iphone3GS和iphone4/4S上,其邏輯分辨率大小則為320*480和160*240。 實際開發中UI給的圖檔都是根據實體分辨率來給的,如果以iphone6/6S作為設計模闆,那你拿到的高保真圖檔則應該是750 * 1334像素,在設定控件frame的時候,則應該将高保真的圖檔尺寸(根據圖檔的像素計算得出)/2。
轉載于:https://www.cnblogs.com/shengzaiwen/p/7200209.html