繁体   English   中英

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

[英]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) UITableViewUIScrollView子类。 因此你可以这样对待它。

如果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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM