ios 怎么适配iphonex

ios 怎么适配iphonex,第1张

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的导致的问题。如图一

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

图一(1)

图一(2)

解决办法:

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

self.myTableviews.estimatedSectionHeaderHeight=0 self.myTableviews.estimatedSectionFooterHeight=0   

就能够正常显示了。图二

图二

iPhone X的出现却山此打破了App设计师的平静,更是让程序员们抓耳挠腮。现在它已经上市两周了,可以看到绝大多数常用APP都已经针对异形屏完成了适配。

就适配速度而言,B站绝对算得上是APP中的第一逗袭迅梯队,在iPhone X发售后的第三天便完成了更新,但现在两周时间过去了,之前那些没解决的问题也依然还存在。

bilibili的首页完完整整的填满了整个屏幕,但大概是为了能在标准排版下尽可能多的显示首页内容,顶端菜单栏的空间设计十分紧促。

而作为bilibili的主营业禅租务,在引进类的原声动画播放时,却出现了自制字幕被Home Indicator,也就是屏幕下方的那根长条遮挡的现象。

在《王者荣耀》的游戏战斗中,腾讯将屏幕两侧加入了渐变黑边,来遮挡多出的可显示面积,所以相比前代iPhone X不会获得更多的可视面积,花了更多的钱却没让我变更强,这真是太不符合腾讯的作风了。

同时大多数的侧边菜单栏都为避开屏幕“刘海”做了拉长处理,但仔细翻阅,还是能找到部分未能进行适配的菜单,不知道《王者荣耀》何时会进行修复。

《阴阳师》的适配速度并不算快,它在iPhone X上市第三周周五的日常维护中才加入了对于异形屏的适配,作为一个对视野和侧边功能键没有太多需求的游戏,《阴阳师》其实也只需要简单的将显示面积拉大,占满整个屏幕即可。

最旁春近在做iOS11以及iPhone X 的适配,遇到的一点问题,简单记录一下。

PS:模拟器我拖动的时候老感觉拖不动 原来要把就把鼠标放到四个角的时候,才可以随便拖动

我的项目启动图不是使用xib和SB适配的,结果在iPhone X上一启动起来就是这样,请看下图

解决方案

方案一:项目使用LaunchScreen.xib或者LaunchScreen.storyboard配置启动图,这个大家都懂,就不做介绍了。

方案二:在LaunchImage 里面添加上iPhoneX的启动图 规格为1125 × 2436

修改Contents.json文件,添加如下内容

然后齐刘海运轮耐就出来了,我看着齐刘海特别像牛角,挺可爱的,工程启动图如下:

iOS11表格用MJRefresh框架下拉刷新的时候界面会闪,显示紊乱,

原因是iOS11弃用了桐册automaticallyAdjustsScrollViewInsets属性,新增contentInsetAdjustmentBehavior来替代它

_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever

解决方案 自己写一个类 继承UINavigationBar 重写layoutSubviews方法改变frame即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8258813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存