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 高度。其他方法完全无效。
我可以在这里做什么?
UITableView
是 UIScrollView
的子类,因此在内容大小方面对它们一视同仁。您需要拉伸底部的内容视图,而不是随意增加其大小,因此只需添加一个 table 页脚:
tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: 1, height: 100))
如果您需要包含安全区域,请在生命周期方法中添加页脚,例如 viewDidLayoutSubviews()
并在其中添加插入值。
通过 storyboard 最小化 tableview 的高度。@skyguy
好的,我已经为此苦苦挣扎了一段时间 - 基本上,我有一个通过故事板设置的 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 高度。其他方法完全无效。
我可以在这里做什么?
UITableView
是 UIScrollView
的子类,因此在内容大小方面对它们一视同仁。您需要拉伸底部的内容视图,而不是随意增加其大小,因此只需添加一个 table 页脚:
tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: 1, height: 100))
如果您需要包含安全区域,请在生命周期方法中添加页脚,例如 viewDidLayoutSubviews()
并在其中添加插入值。
通过 storyboard 最小化 tableview 的高度。@skyguy