更改我的UItableView的高度后,我的滚动不再工作。无法到达底部的数据

时间:2015-08-18 17:34:02

标签: ios swift uitableview xcode6

所以我目前对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

如果你们有任何建议,我将不胜感激:)。

2 个答案:

答案 0 :(得分:0)

手动设置UITableView的高度时的问题是,您还必须手动设置其内容高度。

使用Autolayout来设置高度。

IBOutlet变量设置NSLayoutConstraint(例如,tableHeightConstraint),然后在代码中设置表格的高度:

tableHeightConstraint.constant = tableviewMaximumHeight

tableHeightConstraint.constant = cellRowHeight * CGFloat(numberOfRows) + sectionHeight

答案 1 :(得分:0)

我找到了问题的主要根源。发布的是我的maximumTableviewHeight变量。问题是我在视图中的这个变量的值确实会加载,显然我的表视图的y位置在视图加载时总是给出零。一旦最大表视图高度得到解决。该应用程序就像一个魅力。