Swift - tableview contentsize 与内容不匹配?

Swift - tableview contentsize doesnt match content?

好的,我已经为此苦苦挣扎了一段时间 - 基本上,我有一个通过故事板设置的 table 视图,我现在需要通过代码修改其内容大小。

基本上问题是我有这些 table 视图单元格,并且我在这个 table 视图的顶部和底部重叠了一个视图(两个重叠视图的高度与 1 个单元格相同)。这很好用,因为我在 position.y 中向下移动了 table 视图,如下所示:

但是当我滚动到底部时出现问题 - 我无法完全看到最后 2 个单元格。除了一直添加 2 个虚拟单元格(因为我不断地重新加载我的 table 视图 data/number 单元格)这似乎是错误的,我无法解决这个问题。

我尝试过的是每次重新加载时我都会这样做:

  func fixTableHeight()
    {

        //just make bigger
        self.myTableView.contentSize.height *= 1.1

          self.myTableView.contentSize.height = rssListToLoad + (height of 1) //TEMP

        //print("HI: ",self.myTableView.contentSize.height)

    }

 self.myTableView.reloadData()
    self.fixTableHeight() //**MUST BE AFTER RELOAD DATA!!

但这会导致无限循环扩展 table 高度。其他方法完全无效。

我可以在这里做什么?

UITableViewUIScrollView 的子类,因此在内容大小方面对它们一视同仁。您需要拉伸底部的内容视图,而不是随意增加其大小,因此只需添加一个 table 页脚:

tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: 1, height: 100))

如果您需要包含安全区域,请在生命周期方法中添加页脚,例如 viewDidLayoutSubviews() 并在其中添加插入值。

通过 storyboard 最小化 tableview 的高度。@skyguy