iOS新手学习iOS bug修复iOS 开发每天分享优质文章

iOS11适配及Tableview问题

2017-10-07  本文已影响2684人  肉肉要次肉

手机在上午刚刚更新iOS11.0.2,本宝宝开发的app就出现了传说中导航栏不见的问题,当宝宝将更新好的xcode9.0打开并运行程序时,神奇的事情发生了,导航栏又正常了,但是我的页面的tableview间距发生了问题。如图1

图1 我的页面

抛出源代码如下:

图2 未修改代码

// tableView 如果是Gruop类型的话,section之间的间距变宽,执行返回高度的同时还需要执行return UIView的代理

如图3:

图3 修改后代码

或者直接在AppDelegate.m文件中写全局适配,代码如下:

图4 全局适配

在iOS11中如果不实现-tableView: viewForHeaderInSection:和-tableView: viewForFooterInSection:

则-tableView: heightForHeaderInSection:和- tableView: heightForFooterInSection:不会被调用

导致它们都变成了默认高度,这是因为tableView在iOS11默认使用Self-Sizing

tableView的estimatedRowHeight、estimatedSectionHeaderHeight、estimatedSectionFooterHeight三个高度估算属性由默认的0变成了UITableViewAutomaticDimension,解决办法简单粗暴,就是实现对应方法或把这三个属性设为0。

上一篇下一篇

猜你喜欢

热点阅读