因爲公司給 app 設計的效果圖是基於 iPhone 6 的,效果圖的寬度是 375 point。爲了適應大小屏幕,咱們專門封裝了一個函數來獲取一個適配的點。app
inline CGFloat Point(void) { static CGFloat point; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ point = ([UIScreen mainScreen].bounds.size.width / 375.0f);//以iPhone6爲標準的比例值 }); return point; }
因此在使用的時候,就會是效果圖上裏面的點乘以適配點。好比一張 140 x 140 圖片距離屏幕左邊 20 點。函數
UIImageView *imageView = [UIImageView new]; imageView.frame = CGRectMake(20 * Point(), 0, 140 * Point(), 140 * Point());
這樣的話,在大屏幕裏面,間距和圖片大小都會比效果圖更大,工具
在小屏幕裏面,間距和圖片大小都會比效果圖更小,這樣就能夠適配小屏幕了。佈局
雖然這樣很好的適配小屏幕,可是會讓大屏幕的間距看起來很大,整體看起來沒有很好的利用空間。好比距離左邊 20 點,在 7p 上就是 22.08,會多出 2.08 的點,這樣就會距離左邊更大了。字體
20 * Point() = 20 * 1.104 = 22.08
<!--more-->spa
優酷是怎麼處理這個問題的呢?
我用 Reveal 捕獲了優酷在 5s(越獄) 上的界面,而後在 7p(系統版本高了,越不了監獄) 作了截圖。設計
而後用 ps 工具對 7p 上的截圖作了尺寸獲取,並與 5s 上的 reveal 界面進行對比。發現這兩個機型下,九宮格圖片距離屏幕左邊都是 9 個點,九宮格圖片之間的距離都是 3 個點,包括頭像左右,上下,還有頭像大小都是同樣的。code
iPhone 5s:圖片
iPhone 7 Plus:開發
淘寶是怎麼處理這個問題的呢?
我用 Reveal 捕獲了淘寶在 5s(越獄) 上的界面,而後在 7p(系統版本高了,越不了監獄) 作了截圖。
淘寶對比的結果跟優酷同樣的,在間距上都是用的點。圖片的大小都是 140 點。圖片上下的間距都是 6 點。
iPhone 5s:
iPhone 7 Plus:
我來看看淘寶在 5s 上的字號與 7p 上字號是否一致。
iPhone 5s 上標題的字號是 14。
iPhone 7 Plus 上的字號也是 14,字號與 5s 上的是同樣的。
通過上面的對比,咱們能夠發現直接用點去佈局,纔是合理的,能夠更好的利用屏幕空間,讓大小屏幕在觀感上有一致的體驗。並且也會少了不少像素不對齊的狀況。