【问题标题】:UITableview content size gets wrong while using estimated height使用估计高度时 UITableview 内容大小出错
【发布时间】: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。我不知道如何找到确切的表格视图内容大小。你能帮忙吗?

标签: ios swift uitableview


【解决方案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)
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2011-12-09
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2016-06-30
    相关资源
    最近更新 更多