iOS不用任何適配框架作屏幕適配

相信你們對於屏幕適配都知道能夠用自動佈局,若是是純代碼的話能夠用第三方框架Masonry可是有的朋友不喜歡用第三方框架那怎麼辦呢?php

今天給你們推薦一種方式,不用第三方框架就能夠適配各類屏幕git

可是這種方式的前提是必須用純代碼,全部界面所有用純代碼github

這種方式的中心思想就是根據不一樣屏幕的寬高比,算出其中的比例,而後根據不一樣屏幕的寬度和高度,自動✖️比例,達到適配的效果
廢話很少說,直接上代碼微信

  • 1.定義PCH
     
    1. // 屏幕高度
    2. #define XMGHeight [UIScreen mainScreen].bounds.size.height
    3. // 屏幕寬度
    4. #define XMGWidth [UIScreen mainScreen].bounds.size.width
    5. // 以iPhone5爲基準(UI妹紙給你的設計圖是iPhone5的),固然你也能夠改,可是出圖是按照7P(6P)的圖片出的,由於大圖壓縮仍是清晰的,小圖拉伸就不清晰了,因此只出一套最大的圖片便可
    6. #define XMGiPhone5W 320.0
    7. #define XMGiPhone5H 568.0
    8. // 計算比例
    9. // x比例 1.293750 在iPhone7的屏幕上
    10. #define XMGScaleX XMGWidth / XMGiPhone5W
    11. // y比例 1.295775
    12. #define XMGScaleY XMGHeight / XMGiPhone5H
    13. // X座標
    14. #define LineX(l) l*XMGScaleX
    15. // Y座標
    16. #define LineY(l) l*XMGScaleY
    17. // 字體
    18. #define Font(x) [UIFont systemFontOfSize:x*XMGScaleX]
  • 2.而後在其餘的類裏面就能夠用了
    例如建立一個button:
     
    1. UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(LineX(20), LineY(20), LineX(100), LineY(30))];
    2. [self.view addSubview:btn];
    3. btn.backgroundColor = [UIColor redColor];
    4. [btn setTitle:@"點我啊" forState:UIControlStateNormal];
    5. btn.titleLabel.font = Font(14);
    代碼示例

    好了你們能夠去試試了,固然我如今是以iPhone5爲例,具體的能夠按照大家公司的狀況
    前提是美工出圖須要出大屏的圖片,也就是 7P(6P)的圖片
    設計圖以iPhone5爲例,固然你也能夠修改
    持續更新實用的乾貨
    微信公衆號關注 iOS精匯 簡書coderYJ 微博coderYJ框架

    原文:http://bbs.520it.com/forum.php?mod=viewthread&tid=2839佈局

相關文章
相關標籤/搜索