所以我目前对ios编程很新,我的表视图有点问题。首先,我调用我的Web API来获取填充表View所需的数据。使用数据,我能够计算表视图中存在的行数和节数。之后我计算了我的桌面视图的正确高度。我改变了表格视图的高度并重新加载了表格。看起来像这样
func tableViewHight(numberOfRows : Int)
{
let sectionHeight = CGFloat(30) * CGFloat(numberOfSections - 1)
//This is the height of all the sections in my tableview put together(except the first section since its height will always be 0)
let tableviewMaximumHeight = UIScreen.mainScreen().bounds.size.height - self.myTableView.frame.origin.y
//Maximum height would be the distance from the y position of my table view, all the way to the bottom of the device.
if(tableviewMaximumHeight <= (cellRowHeight * CGFloat(numberOfRows) + sectionHeight))
{
self.myTableView.frame.size.height = tableviewMaximumHeight
}
else
{
self.myTableView.frame.size.height = cellRowHeight * CGFloat(numberOfRows) + sectionHeight
}
self.myTableView.reloadData()
}
我的表格视图可以更改高度并完美重新加载数据。唯一的问题是我无法到达表格视图的底部。我不知道还能做什么。我已经检查过我的表格视图
myTableView.scrollEnabled = true
myTableView.scrollTop = false
如果你们有任何建议,我将不胜感激:)。
答案 0 :(得分:0)
手动设置UITableView的高度时的问题是,您还必须手动设置其内容高度。
使用Autolayout来设置高度。
为IBOutlet
变量设置NSLayoutConstraint
(例如,tableHeightConstraint
),然后在代码中设置表格的高度:
tableHeightConstraint.constant = tableviewMaximumHeight
或
tableHeightConstraint.constant = cellRowHeight * CGFloat(numberOfRows) + sectionHeight
答案 1 :(得分:0)
我找到了问题的主要根源。发布的是我的maximumTableviewHeight变量。问题是我在视图中的这个变量的值确实会加载,显然我的表视图的y位置在视图加载时总是给出零。一旦最大表视图高度得到解决。该应用程序就像一个魅力。