我正在使用自我调整单元格功能,它可以很好地工作,直到我想完全隐藏单元格。为此,我离开了heightForRowAtIndexPath并设置了以下内容:
override func viewDidLoad() {
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 0
}
但是,当我没有tableviewcell的文本呈现时,我得到以下消息:
仅警告一次:检测到模糊限制的情况 为tableview单元格的内容视图建议高度为零。我们'再 考虑到无意识的崩溃和使用标准高度 代替。
我真的只需要一种动态隐藏/显示内容的方法。我正在使用静态tableview,所以也许我接近这个错误了?
答案 0 :(得分:1)
我找到了解决方案。
首先,要使静态表正确使用自定义大小,每个表格单元格只能有一个标签。我试图将大量内容放入一个单元格中,只有第一个标签会对单元格进行调整。我可能错误的是每个单元格一个标签的规则,问题可能是约束/自动布局相关。我已经看过这个WWDC视频了,我设置它的方式应该是我现有的约束,因为它们设置为单元格的contentView。
其次,UI更新需要与开始和结束规则以及重新加载相结合。
tableView.beginUpdates()
//-- You Table UI changes
tableView.reloadData()
tableView.endUpdates()
您还可以将reloadData替换为reloadRowsAtIndexPaths以特定于要更新的行,但我的实例需要更新所有行。
答案 1 :(得分:0)
前段时间我遇到过类似的问题。我会使用动态单元格,并删除隐藏的单元格
numberOfRowsInSection
并在
cellForRowAtIndexPath
您应该尝试在单元格内容数组中添加“隐藏”属性,并检查加载/重新加载数据的时间。当然,这对Autolayout仍然有用。