[英]UITableView does not scroll to bottom (Swift IOS)
我的 UITableView 不会滚动到底部并在显示所有内容之前停止(切断最后几行)。 我已经检查过我的 UITableView 是否等于屏幕大小,但内容大小大于屏幕和表格高度。 我不确定为什么会这样。
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
这很可能发生在小型 iPhone 设备中。 因为您没有正确设置 tableview 的底部约束。 检查该约束。 如果它不存在添加它。
可能您需要设置自动尺寸:-
您可以使用正确的约束将 tableView 固定到超级视图,如果您使用自定义 tableview 单元格,然后将所有标签约束(前导、尾随、顶部和底部)固定到单元格,然后在您的 ViewController viewDidLoad
方法中编写以下代码:-
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44.0
一旦您的约束正确,那么您的表格视图单元格内容大小将根据内容动态调整大小。
笔记:-
如果您使用UITableViewAutomaticDimension
不要使用 tableview 委托方法(heightForRowAtIndexPath)
来调整高度
在我的情况下......删除
tableview.frame.size = tableview.contentsize 有效
从属性检查器内的故事板取消选中各个 ViewController 的“Under Bottom Bars”解决了我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.