UITableView 不滚动到底部(Swift IOS)

Posted

技术标签:

【中文标题】UITableView 不滚动到底部(Swift IOS)【英文标题】:UITableView does not scroll to bottom (Swift IOS) 【发布时间】:2017-02-27 21:09:50 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

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

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

【讨论】:

很好的答案@BrandonA。用漂亮的代码 sn-ps 覆盖了所有基础。 @AshleyMills 你太客气了。我只是一个简单的程序员。我没有做任何很酷的事情,比如 Swift 的可达性。但无论如何。【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44.0

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

注意:-

如果使用UITableViewAutomaticDimension,请不要使用tableview委托方法(heightForRowAtIndexPath)调整高度

【讨论】:

【参考方案4】:

在我的情况下......删除

tableview.frame.size = tableview.contentsize 工作

【讨论】:

【参考方案5】:

从属性检查器内部的情节提要中取消选中相应 ViewController 的 “Under Bottom Bars” 解决了我的问题。

【讨论】:

以上是关于UITableView 不滚动到底部(Swift IOS)的主要内容,如果未能解决你的问题,请参考以下文章

检测 UITableView 何时滚动到底部

UITableView 出现默认滚动到底部的方法(不闪动)

在 UITableView 中滚动到顶部后,CAGradientLayer 位置错误。迅速

启动 UITableView 滚动到底部

uitableview 不会滚动到底部

UITableView 从当前位置滚动到底部