暴力适配iphoneX

趁着iphoneX大行其道之际,赶紧写一篇低质量的文章,暴力适配下iphoneX

前言:写几个常用的宏定义,和判断iOS版本的方法,适配的时候方便使用

#define iPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640,960), [[UIScreen mainScreen] currentMode].size) : NO)

#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640,1136), [[UIScreen mainScreen] currentMode].size) : NO)

#define iPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750,1334), [[UIScreen mainScreen] currentMode].size) : NO)

#define iPhone6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242,2208), [[UIScreen mainScreen] currentMode].size) : NO)

#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125,2436), [[UIScreen mainScreen] currentMode].size) : NO)

if(@available(iOS11.0,*)) {//判断当前iOS系统版本是不是iOS11

}else{

}

1.iOS11引入了Safe Area Layout Guide概念,如果你的xib报相关错误,那你直接去掉这个选项就好


图1

如果你想用这个新特性的话,也可以,毕竟这个是专为iphoneX的适配而生,只要你在安全区域内布局,它的运行效果一定是上留天下留地,当你使用Safe Area Layout Guide的时候,它的界面上会多出类似于一个view的视图,我们可以把它看做一个不占位置的view,它只提供了一个相对位置,我们的视图根据安全区域适配就好

图2

运行效果如图(如果运行在普通手机上的话,刚好底部铺满,顶部留出20像素的状态栏)

图3

这个状态下,如果创建个view,设置frame是(0,0,100,100)的话,它会从安全区域的(0,0)点开始计算

图4

2.现在进入正题,不用Safe Area Layout Guide如何适配iphoneX:

最容易出问题的地方有:启动图,顶部,底部,tableView,scrollview,collectionView,聊天界面

(1)启动图:适配iphoneX,首先得给启动页一个iphoneX大小的启动图,要不然在iphoneX上运行出来的app是有问题的

图5

(2)顶部、底部:顶部主要分几种情况:automaticallyAdjustsScrollViewInsets 这个属性有可能影响滑动视图的原点位置,如果源码没有修改这属性,那iphoneX的适配最好也不要动;如果整个页面是collectionView的话调整它的contentInset就好,需要占满状态栏的话,上移24;如果空出状态栏,下移20;底部的话,可以直接给collectionView的frame的高度减去34;如果整个页面是tableView的话,注意下estimatedSectionHeaderHeight和estimatedSectionFooterHeight这两个属性。。把他们的值都设置为0

(3)前几天看了下美团的大神们的适配方案,感觉不错,然后自己就没动力写了。。。

https://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651746838&idx=1&sn=44565f985c8da698b4fde31bf33d6dc2&chksm=bd12ab5b8a65224dbeb872dc44be6ef54607809f7f692ab01e62b77a3e8603f336e2e850f9c3&mpshare=1&scene=23&srcid=0928i1n7eQVLDzJk6OsqfHIa#rd

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容