iPhone X和iOS 11的简单适配

ios          iPhone11X适配

版权声明:本文为博主原创文章,未经博主授权不得转载。

从9月15号,开始预定了iPhone 8 以及iPhone 8 Plus。Xcode 9.0 GM版本和iOS 11 GM 版本也就发布了。

接下来,适配iOS 11是首要的适配的,网上教程很多,不在赘述。这里主要讲的是 iPhone X的适配。大神级别的可以不用看,我这里讲的主要是基础的适配工作。我将按照一个项目的适配顺序来讲解:

1、启动App

对于一些老项目,在启动图上,可能没有采用xib或者SB进行适配的,所以可能会出现如图一,这样导致整个项目运行就会不能完全贴合。

解决办法,在项目设置里面直接用LaunchScreen.xib或者LaunchScreen.storyboard进行配置启动图或者配置一张单独的启动图,这样项目就会完整显示了。

2、程序进到程序的首页。如果采用了MJRefresh的刷新机制,则会显示如下图的效果,导致刷新头部显示。不过按照实验能看到,如果不显示下拉箭头,则【刘海】可以正好盖住,

·不过想让statusBar变颜色,可以采用view上移-88 则会正常显示。或者界面不上移动,将刷新头部背景色变成和项目顶部背景色一样也可以,即设置:.mj_header.backgroundColor

·如果都不想改,可以坐等MJRefresh的作者更新,目前这个问题,已经提交给作者。

3、处理到这里,可能的发现,原来上移status可能是20 ,在iPhone X的设备上,变成了88,如何设置。可以采用:

// 状态栏(statusbar)

CGRect StatusRect = [[UIApplication sharedApplication] statusBarFrame];

//标题栏

CGRect NavRect = self.navigationController.navigationBar.frame;

然后将高度相加,便可以动态计算顶部高度。

4、项目中难免使用全屏的情况,如果界面比较负责,无法采用约束布局,需要代码适配,由于status 的高度改变,需要改变动态的计算。

修改完后:

5、tableview的导致的问题。如图一

目前模拟器设置中也存在如下问题,不过目前不确定会不会有所调整。

解决办法:

目前发现在iOS 11中,会默认开启获取的一个估算值来获取一个大体的空间大小,导致不能正常显示,可以选择关闭。目前尝试在delegate中处理不能很好的解决,不过可以直接设置:

self.myTableviews.estimatedSectionHeaderHeight=0;

self.myTableviews.estimatedSectionFooterHeight=0;

就能够正常显示了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 随着iOS11和xcode9刚开始正式发布,小编也迫不及待的更新了xcode9,手机也顺利更新到iOS,也终于见到...
    七秒记忆的鱼儿阅读 96,397评论 97 410
  • 肖亚玲今年二十六岁,结婚三年,生有一个儿子。肖亚玲也算是个很勤恳的持家女人,晚上在市场旁边热闹大街摆地摊卖成衣,白...
    和风轻和阅读 344评论 3 1
  • 自2016年10月在阿里云栖大会上,马云第一次提出了「新零售」的概念,即以消费者体验为中心的数据驱动的泛零售形态 ...
    吴建伸阅读 436评论 0 1
  • 二十岁,和男友分手后,痛侧心扉,混混沌沌度过了好几个月,那个时候一直觉得是自己不够好,才会分手,离开他的日子,看天...
    双鱼座的猫阅读 2,523评论 0 48