UITableView 内容大小小于预期

Posted

技术标签:

【中文标题】UITableView 内容大小小于预期【英文标题】:UITableView Content Size Smaller than Expected 【发布时间】:2017-09-15 18:35:56 【问题描述】:

我有一个 UIScrollView,里面有一个 UITableView。我已禁用表格视图上的滚动。我正在使用以下代码将 UITableView 的高度保持在其内容的高度。

override func updateViewConstraints() 
        self.editView!.editTblHeightCnst.constant = self.editView!.editTbl.contentSize.height + self.editView!.editTbl.contentInset.top + self.editView!.editTbl.contentInset.bottom + self.editView!.editTbl.contentOffset.y
        super.updateViewConstraints()
    

但是,我得到的内容尺寸太小了。如果我在内容大小上添加几百或更少,它就可以工作。为什么我的内容大小不符合我的预期,我该如何解决?

【问题讨论】:

uitableview 是 scrollview 的子类,所以为什么你在 scrollview 上添加 tableview ,只需使用 tableview 而不需要保持它的高度它会根据内容大小自动增长 @ShobhakarTiwari 我不能那样做。在这种情况下,我需要一些视图,然后是一个高度适合其内容的表格视图,所有这些都在滚动视图中。 【参考方案1】:

我找到了一个解决方案,在做所有工作之前写下这个:

tableView.estimatedRowHeight = 0;

ios 11 中,表格视图默认使用估计高度。这表示 contentSize 与最初的估计值一样。如果你需要 要使用 contentSize,您需要通过以下方式禁用估计高度 将 3 个估计的高度属性设置为零: tableView.estimatedRowHeight = 0 tableView.estimatedSectionHeaderHeight = 0 tableView.estimatedSectionFooterHeight = 0

来源:https://forums.developer.apple.com/thread/81895

【讨论】:

以上是关于UITableView 内容大小小于预期的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 在旋转时使用自动布局调整大小

在 UITableView 单元格中定位 UIImageViews

UItableview全部属性方法以及代理方法执行顺序

编辑模式 UITableView,不能阻止内容视图向右移动

输入 DOM 元素字体大小小于预期,直到第一次点击页面

UITableView 单元格的动态高度问题(Swift)