我知道论坛上有很多关于这个问题的答案,但他们没有帮助我。这是我的问题。
我有 UITableView
和 UISegmentedControl
。一个段中的数据比另一段中的数据少。旋转或分段切换后,我调用 reloadData
以确保显示整个数据。这样可行。
现在,用户单击一个单元格并使用相同的 UISegmentedControl
转到另一个 View 。打算使用相同的控件,我希望两个 View 都显示相同的数据透视图。当用户在第一个屏幕上看到数据较少的透视图,转到第二个屏幕并将透视图更改为那里的数据时,就会出现问题。然后他返回,无法滚动到表格底部。如果他旋转屏幕或改变片段,一切又会好起来。
我尝试通过实现 viewWillAppear:
并减少/计算 tableView
的高度来解决问题。不幸的是,它没有奏效。调用 reloadData
也无济于事。实际上,切换段时已经重新加载了 tableView
......但是,我仍然看不到表格的最后一个单元格。
有任何想法吗?
编辑:
以下是我从测试中得到的高度(不调整大小):NSLog(@"Before switch: %f, %f", self.tableView.frame.size.height, self.tableView.contentSize.height);
--> 切换前:372.000000, 471.000000NSLog(@"After switch: %f, %f", self.tableView.frame.size.height, self.tableView.contentSize.height);
--> 切换后:372.000000, 585.000000tableView
保持不变,只有 contentSize
增加。我尝试将一个的值设置为另一个的值,减少值等,但我真的不知道应该做什么......
EDIT2:
所有 contentSize
和 height
值似乎都很好。但是,我意识到问题与屏幕上的自定义标题 View 有某种关系。当我从表格 View 中删除它时,它会滚动到最后。但是,对于标题 View ,则不然。我不会从标题 View 中更改任何内容,它只是表格顶部带有按钮的 View 。
最佳答案
这是因为您的 tableView 的框架高度超出了可见区域。将 tableView 的框架高度降低到可见区域内。你会看到一切。
tableView.contentSize = CGSizeMake(widthYouWant, heightYouWant);
关于ios - 无法滚动到 UITableView 的底部,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16483375/