iOS 11浮动TableView标题

VDu*_*b19 12 tableview ios swift ios11

让应用程序有多个部分,"扩展"时每个部分有几行,"折叠"时没有.每个部分都有一个部分标题,正在使用子类UITableViewHeaderFooterView等重用它们.到目前为止一切都很好.

然后在iOS 11中:

描述问题的屏幕截图

我已经使用了可视化调试器,并确认它是我的部分标题浮动.标题下方的所有行都正确显示,其他标题显示正常.

为了恢复理智,我抛弃了标题的所有重用逻辑,并以编程方式编写它们.彼此彼此.iOS 11之前的所有工作仍然在iOS 11中浮动.浮动的部分似乎每次都会改变,所以就是这样.

有任何想法吗?

ahm*_*dre 48

刚遇到类似的问题,发现这个问题的讨论对我有用:

self.tableView.estimatedRowHeight = 0
self.tableView.estimatedSectionHeaderHeight = 0
self.tableView.estimatedSectionFooterHeight = 0
Run Code Online (Sandbox Code Playgroud)

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

表视图现在默认使用估计的高度,这也意味着单元格和节头/页脚视图现在默认为自我大小.estimatedRowHeight,estimatedSectionHeaderHeight和estimatedSectionFooterHeight属性的默认值现在是UITableViewAutomaticDimension,这意味着表视图选择要使用的估计高度.如果可能,您仍应为每个房产提供更准确的估算,这是您对实际高度平均值的最佳猜测.如果现有的表视图代码在使用iOS 11 SDK构建应用程序时表现不同,并且您不想采用自行调整大小,则可以通过将值设置为零来禁用估计的高度来恢复以前的行为.每个估计的高度属性.(30197915)

另请参阅此处镜像的beta 2发行说明.


小智 1

尝试将表格样式从简单更改为分组。