使用估计高度时 UITableview 内容大小出错
Posted
技术标签:
【中文标题】使用估计高度时 UITableview 内容大小出错【英文标题】:UITableview content size gets wrong while using estimated height 【发布时间】:2019-01-29 18:39:57 【问题描述】:我在使用表格视图内容大小时得到了空白空间。我将其称为 https://forums.developer.apple.com/thread/81895。但这对我不起作用。当我调用获取表格内容大小时,它给出了错误的大小,例如,如果表格视图内容大小为 100 意味着它给了我 140 或 80 之类的......等等。那么,如果有人知道如何处理或如何获得正确的表格视图内容大小??
【问题讨论】:
提供您使用的功能的更多信息或发布代码以便我们为您提供帮助。 我需要找到表格视图内容大小,因为我需要根据行数增加表格高度。我使用表格视图自动尺寸来自动增加基于单元格高度的单元格内容。所以我过去常常在表格视图完全加载后找到表格内容的大小,然后我们可以调整表格视图的大小。我使用下面的代码来获取表格视图内容大小, Print(tableview.contentSize) 但它给出了错误的大小。所以我研究了一些链接,然后我发现了这个forums.developer.apple.com/thread/81895。 在该链接中,您可以看到 Apple 表示我们需要将估计的表格高度提及为 0 以获得正确的表格视图内容大小。但它再次给出了错误的内容大小。例如,表格视图加载 5 行,内容大小高度为 100.0,但它只给出 80.0。我不知道如何找到确切的表格视图内容大小。你能帮忙吗? 【参考方案1】:使用下面的代码一次
override func viewDidLoad()
super.viewDidLoad()
yourTableView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil)
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)
if(keyPath == "contentSize")
if let newvalue = change?[.newKey]
let contentHeight: CGFloat = yourTableView.contentSize.height
print(contentHeight)
【讨论】:
以上是关于使用估计高度时 UITableview 内容大小出错的主要内容,如果未能解决你的问题,请参考以下文章
关闭另一个视图后 UITableView 滚动内容大小不正确
如何将 UITableView 的高度调整为内容大小的高度?