估计HeightForHeaderInSection 行为怪异

Posted

技术标签:

【中文标题】估计HeightForHeaderInSection 行为怪异【英文标题】:estimatedHeightForHeaderInSection acting weird 【发布时间】:2015-10-23 07:53:24 【问题描述】:

我在表格视图中添加了一个自定义标题,它使用动态类型,我希望它能够自行调整大小。

所以我将此添加到我的viewDidLoad

self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension

这也适用于我的其他表格视图方法:

override func tableView(tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat 
    return 22

然后我的标题单元格太大并且无法自行调整大小,我收到以下错误消息:

Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell's content view. We're considering the collapse unintentional and using standard height instead.

所以我开始玩弄,我删除了estimatedHeightForHeaderInSection 方法并改为实现estimatedHeightForFooter。然后我的标题看起来很完美!但是页脚也开始显示,这是我不想要的。所以我添加了 heightForFooter 方法并将其设置为 0,现在一切正常。

不过,我觉得这很奇怪。我是新手,但我希望estimatedHeightForHeader 为页眉工作,estimatedHeightForFooter 为页脚工作。这是一个错误吗?难道我做错了什么?有没有更好的方法来完成我想做的事情?

提前致谢。

丹尼尔


编辑:我接受了 Omkar 的回答,因为它当时对我有用,但我仍然不明白为什么我不应该同时使用这两种方法。不过,我在标题中使用了常规单元格,现在我发现这样做会导致各种奇怪的事情发生。所以我只是以编程方式更改了 UITableViewHeaderFooterView,现在一切正常,但我必须实现这两种方法,就像我最初想的那样,否则标题无法正确调整大小。

【问题讨论】:

你为什么同时使用从你的代码中删除 UItableViewAutomaticDimension 并尝试 @OmkarGuhilot 啊!我以为我应该同时使用两者。现在它完美地工作了。谢谢!如果我不将两者都用于常规单元格,则它不起作用,所以我认为我也应该将两者都用于标题单元格。无论如何,现在一切都很好。所以你应该添加这个作为我接受它的答案,对吧?还是这个问题太傻了,我应该在别人看到之前删除它? 【参考方案1】:

不要同时使用这两者从你的代码中删除它

self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension

【讨论】:

以上是关于估计HeightForHeaderInSection 行为怪异的主要内容,如果未能解决你的问题,请参考以下文章

参数估计 点估计之矩估计法

估计量|估计值|矩估计|最大似然估计|无偏性|无偏化|有效性|置信区间|枢轴量|似然函数|伯努利大数定理|t分布|单侧置信区间|抽样函数|

稳健性估计—— M 估计

稳健性估计—— M 估计

机器学习(二十五)— 极大似然估计贝叶斯估计最大后验概率估计区别

回归分析06:回归参数的估计