欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS 11更新后及iPhone X推出后工程中遇到的问题及适配方法

程序员文章站 2023-12-17 21:17:22
1.uitableview滑动时右侧的滑动条忽长忽短的乱跳以及mjrefresh上拉刷新死循环 这是因为tableview在ios11默认使用self-sizing,ta...

1.uitableview滑动时右侧的滑动条忽长忽短的乱跳以及mjrefresh上拉刷新死循环

这是因为tableview在ios11默认使用self-sizing,tableview的estimatedrowheight、estimatedsectionheaderheight、estimatedsectionfooterheight三个高度估算属性由默认的0变成了uitableviewautomaticdimension,mjrefresh的kvo会监听错误的contentoffset,造成不停进行上拉加载操作,

解决方法可以再全局里面将上面3个属性的默认值设置为0即可

uitableview.appearance.estimatedrowheight = 0;
uitableview.appearance.estimatedsectionfooterheight = 0;
uitableview.appearance.estimatedsectionheaderheight = 0;

2.在ios 11中tableview的contentsize默认下移了64高度

在ios 11中uiviewcontroller的 automaticallyadjustsscrollviewinsets 属性被废弃了取而代之的是uiscrollview的contentinsetadjustmentbehavior属性,同样的也可以更改默认的值

if (@available(ios 11.0, *)) {
  uiscrollview.appearance.contentinsetadjustmentbehavior = uiscrollviewcontentinsetadjustmentnever;
} else {
  // fallback on earlier versions
  self.automaticallyadjustsscrollviewinsets = no;
}

然而这样写在调用相册的时候当推出系统相册的时候将系统页面contentsize的下移取消掉了导致出现了大问题,所以又将上面的默认值去掉在特定的界面修改即可

3.项目在iphone x上运行时上下都有巨大的黑边

解决方法:因为项目中是用assets中的launchimage, 这样就可以修改assets中的launchimage,添加iphonex的launch图(1125*2436)即可,但是

ios 11以前,导航栏的高度是64,其中状态栏statusbar的高度是20,底部tabbar的高度是49。

ios 11之后,iphonex的导航栏的高度是88,其中状态栏的statusbar的高度变成了44, 底部的tabbar变成了83。

iphonex的底部增加了虚拟home区,由于安全区域的原因默认tabbar的高度由49变为83,增高了34,所以自定义的底部tabbar也需要修改其适配方案。

总结

以上所述是小编给大家介绍的ios 11更新后及iphone x推出后工程中遇到的问题及适配,希望对大家有所帮助

上一篇:

下一篇: