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) UITableView
是 UIScrollView
的子类。因此,您可以这样对待它。
如果 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)的主要内容,如果未能解决你的问题,请参考以下文章