iOS 11 UITableView中的额外顶部空间

时间:2017-09-26 08:42:50

标签: ios swift xcode tableview ios11

当我在iOS 11 SDK上更新我的应用程序时,TableView开始表现得很奇怪,它正在添加额外的顶部空间,但实际上额外的空间是Cell本身但它没有呈现,请在ios 11更新之前和之后查看附加图像。 谢谢!

this is after ios 11 update

Before ios 11

5 个答案:

答案 0 :(得分:24)

在代码中设置新属性contentInsetAdjustmentBehavior,它可以解决问题。

if #available(iOS 11.0, *) {
    collectionView.contentInsetAdjustmentBehavior = .never
}

在iOS 11中添加了名为contentInsetAdjustmentBehavior的UIScrollView上的新属性,以确定调整内容偏移量

  

此属性指定如何使用安全区域insets进行修改   滚动视图的内容区域。默认值   财产是自动的。

答案 1 :(得分:6)

我不知道为什么,但是当我以编程方式添加表格视图时,会发生空间。您只需要在viewForHeaderInSection

中返回空视图
 func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    return UIView()
}

如果你想要零空间,也可以添加它,

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 0.01
}

另外,我意识到bug只出现在Swift4中。

答案 2 :(得分:1)

仅在iOS 11上发生,我的修复:

self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, CGFLOAT_MIN)];

OR

self.tableView.tableHeaderView = UIView(frame: CGRect(x:0,y:0,width:0,height:CGFLOAT_MIN))

答案 3 :(得分:1)

我已经遇到了额外的顶级空间问题,我不得不提出很多答案才能找到解决方案。 (检查所有给出的答案需要5个小时)

首先要关注的是

表格视图-模式为“分组”,请将其更改为“普通”

无需对页眉或页脚部分进行任何更改,也无需添加与之相关的其他委托方法

然后在拥有InterfaceViewer中的TableView的ViewController中-取消选中“调整滚动视图插图”-取消选中“扩展边缘:在顶部栏下”

*此外,请确保您要删除派生数据并在模拟器或手机中重新安装您的应用程序,以反映有效完成的更改。

UI更改有时也由于IDE而无法反映出来...

enter image description here

答案 4 :(得分:-3)

似乎在iOS 11中向TableView添加渐变图层会产生此问题