iOS 11浮动TableView标题

有一个应用程序与多个部分,每个部分几行时,“展开”,没有“折叠”时。 每个部分都有一个section header,正在使用UITableViewHeaderFooterView的子类等来重用它们。

然后在iOS 11中:

描述问题的屏幕截图

我使用了可视化debugging器,并确认这是我的部分标题浮动。 标题下面的所有行显示正确,其他标题显示正常。

为了恢复理智,我抛出了头部的所有重用逻辑,并以编程方式进行编程。 彼此彼此。 所有在iOS 11之前的工作,仍然在iOS 11中浮动。漂浮的部分似乎每次都会改变,所以就是这样。

有任何想法吗?

刚刚遇到类似的问题,并发现在这个问题上的讨论,这对我工作:

 self.tableView.estimatedRowHeight = 0; self.tableView.estimatedSectionHeaderHeight = 0; self.tableView.estimatedSectionFooterHeight = 0; 

看起来像iOS 11中的UITableView默认行为使用估计的高度。 iOS 11 beta 2发行说明说:

现在,表格视图默认使用估计的高度,这也意味着单元格和部分页眉/页脚视图现在默认为自定义大小。 estimatedRowHeight,estimatedSectionHeaderHeight和estimatedSectionFooterHeight属性的默认值现在是UITableViewAutomaticDimension,这意味着表视图select估计使用的高度。 如果可能的话,您仍然应该为每个物业提供更准确的估算值,这是您对实际高度的平均值的最佳猜测。 如果您现有的表格视图代码在使用iOS 11 SDK构build应用程序时行为不同,并且您不想采用自定义大小,则可以通过将值设置为零来恢复先前的行为每个估计的身高属性。 (30197915)

另请参阅此处镜像的testing版2发行说明。

尝试将表格样式从普通变为分组。

我不知道为什么在我的情况下,@ ahmedre答案不工作…

所以我的答案可能会帮助你,如果你设置所有估计属性为​​0也不能正常工作:

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

你有没有从故事板中添加标题,如果是的话,请分享“故事板中tableview的标题”截图
你还计算行高? 是否按预期计算?