我的UITableView不会滚动到底部并在显示所有内容之前停止(切断最后几行)。我已经检查过我的UITableView等于屏幕大小,但内容大小大于屏幕和表格高度。我不确定为什么会这样。
答案 0 :(得分:3)
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
方法中输入什么值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
(heightForRowAtIndexPath)
调整高度
答案 3 :(得分:0)
就我而言...删除
tableview.frame.size = tableview.contentsize有效
答案 4 :(得分:0)
从属性检查器内的故事板中取消选中各个 ViewController 的 “Under Bottom Bars” 解决了我的问题。