相信你們對於屏幕適配都知道能夠用自動佈局,若是是純代碼的話能夠用第三方框架Masonry可是有的朋友不喜歡用第三方框架那怎麼辦呢?php
今天給你們推薦一種方式,不用第三方框架就能夠適配各類屏幕git
可是這種方式的前提是必須用純代碼,全部界面所有用純代碼github
這種方式的中心思想就是根據不一樣屏幕的寬高比,算出其中的比例,而後根據不一樣屏幕的寬度和高度,自動✖️比例,達到適配的效果
廢話很少說,直接上代碼微信
// 屏幕高度
#define XMGHeight [UIScreen mainScreen].bounds.size.height
// 屏幕寬度
#define XMGWidth [UIScreen mainScreen].bounds.size.width
// 以iPhone5爲基準(UI妹紙給你的設計圖是iPhone5的),固然你也能夠改,可是出圖是按照7P(6P)的圖片出的,由於大圖壓縮仍是清晰的,小圖拉伸就不清晰了,因此只出一套最大的圖片便可
#define XMGiPhone5W 320.0
#define XMGiPhone5H 568.0
// 計算比例
// x比例 1.293750 在iPhone7的屏幕上
#define XMGScaleX XMGWidth / XMGiPhone5W
// y比例 1.295775
#define XMGScaleY XMGHeight / XMGiPhone5H
// X座標
#define LineX(l) l*XMGScaleX
// Y座標
#define LineY(l) l*XMGScaleY
// 字體
#define Font(x) [UIFont systemFontOfSize:x*XMGScaleX]
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(LineX(20), LineY(20), LineX(100), LineY(30))];
[self.view addSubview:btn];
btn.backgroundColor = [UIColor redColor];
[btn setTitle:@"點我啊" forState:UIControlStateNormal];
btn.titleLabel.font = Font(14);
好了你們能夠去試試了,固然我如今是以iPhone5爲例,具體的能夠按照大家公司的狀況
前提是美工出圖須要出大屏的圖片,也就是 7P(6P)的圖片
設計圖以iPhone5爲例,固然你也能夠修改
持續更新實用的乾貨
微信公衆號關注 iOS精匯 簡書coderYJ 微博coderYJ框架
原文:http://bbs.520it.com/forum.php?mod=viewthread&tid=2839佈局