estimatedHeightForHeaderInSection表现得很奇怪

时间:2015-10-23 07:53:25

标签: ios xcode swift autolayout tableview

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

所以我将其添加到我的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,现在一切正常,但是我必须实现这两种方法,就像我首先想到的那样,否则标题不会正确调整大小。

1 个答案:

答案 0 :(得分:1)

不要同时使用从代码中删除它

self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension