UITableView不会滚动到底部(Swift IOS)

时间:2017-02-27 21:09:50

标签: ios swift uitableview

我的UITableView不会滚动到底部并在显示所有内容之前停止(切断最后几行)。我已经检查过我的UITableView等于屏幕大小,但内容大小大于屏幕和表格高度。我不确定为什么会这样。

5 个答案:

答案 0 :(得分:3)

1)屏幕底部是否有UITabBar?该栏可能涵盖此内容。如果是这样,请转到您的故事板并将UIViewController放入UITableView,并取消选中Under Bottom Bars布尔值。

enter image description here

2)您可能在底部设置了NSLayoutConstraint,这是负面的。这意味着您的UITableView将延伸到屏幕底部。如果是这样,请将UITableView的底部约束重置为0.0。

enter image description here

3)您可能想尝试使用UITableView滚动方法。获取最后一个单元格的索引:

[yourTableView scrollToRowAtIndexPath:lastCellIndex 
                 atScrollPosition:UITableViewScrollPositionTop 
                         animated:YES];

4) UITableViewUIScrollView的子类。因此你可以这样对待它。

如果UITableView中的单元格具有相同的高度,您可以将数据源中的对象数乘以单元格的高度,然后您就知道要在UIScrollView/TableView方法中输入什么值as contentOffset:

(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

答案 1 :(得分:2)

这很可能发生在小型iPhone设备上。因为你没有正确设置tableview的底部约束。检查那个约束。如果它不存在则添加它。

答案 2 :(得分:2)

您可能需要设置自动尺寸: -

您可以使用正确的约束将tableView固定到superview,如果您使用的是自定义tableview单元格,则将所有标签约束(前导,尾随,顶部和底部)固定到单元格,然后放入ViewController {{1写下面的代码: -

viewDidLoad

一旦您的约束正确,那么您的表格视图单元格内容大小将根据内容动态调整大小。

注意: -

如果您使用tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 44.0

,请勿使用tableview委托方法(heightForRowAtIndexPath)调整高度

答案 3 :(得分:0)

就我而言...删除

tableview.frame.size = tableview.contentsize有效

答案 4 :(得分:0)

从属性检查器内的故事板中取消选中各个 ViewController 的 “Under Bottom Bars” 解决了我的问题。