首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 11浮动TableView报头

iOS 11浮动TableView报头
EN

Stack Overflow用户
提问于 2017-09-16 04:15:35
回答 4查看 12.2K关注 0票数 12

有一个应用程序有多个部分,当“展开”时每个部分有几行,当“折叠”时没有。每个部分都有一个部分标题,正在使用UITableViewHeaderFooterView等的子类重用它们。到目前为止还不错。

然后在iOS 11中:

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

为了恢复理智,我丢弃了头文件的所有重用逻辑,只是通过编程来实现它们。一样的。所有在iOS11之前的工作,在iOS 11中仍然是浮动的。浮动的部分似乎每次都会改变,所以就是这样。

有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2017-09-17 03:18:19

刚刚遇到了类似的问题,找到了适用于我的the discussion on this issue

代码语言:javascript
复制
self.tableView.estimatedRowHeight = 0
self.tableView.estimatedSectionHeaderHeight = 0
self.tableView.estimatedSectionFooterHeight = 0

在iOS 11中,UITableView的默认行为似乎已更改为使用估计高度。iOS 11 beta 2的发行说明中写道:

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

另请参阅beta 2发行说明mirrored here

票数 51
EN

Stack Overflow用户

发布于 2018-07-20 19:34:25

如果要像在ahmedre answer中那样对整个应用程序进行更改,可在AppDelegate didFinishLaunchingWithOptions中设置此属性

代码语言:javascript
复制
UITableView.appearance().estimatedRowHeight = 0
UITableView.appearance().estimatedSectionHeaderHeight = 0
UITableView.appearance().estimatedSectionFooterHeight = 0
票数 3
EN

Stack Overflow用户

发布于 2017-11-10 11:45:06

我不知道为什么在我的情况下,@ahmedre答案不起作用...

因此,如果您将所有预估属性设置为0也不起作用,我的答案可能会对您有所帮助:

代码语言:javascript
复制
func tableView(_ tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat {
    return 0.1
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 0.1
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46246924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档