我的UITableView无法滚动到底部,停在了所有内容显示之前(剪去了最后几行)。我已经检查过我的UITableView是否等于屏幕大小,但是内容大小比屏幕和表格高度要大。我不确定为什么会出现这种情况。
我的UITableView无法滚动到底部,停在了所有内容显示之前(剪去了最后几行)。我已经检查过我的UITableView是否等于屏幕大小,但是内容大小比屏幕和表格高度要大。我不确定为什么会出现这种情况。
1) 您的屏幕底部是否有UITabBar
?如果是这样,可以前往您的故事板以及您放置了UITableView
的UIViewController
,并取消选中它的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 cell,则将所有标签的约束(前导、后续、顶部和底部)固定到cell中,然后在你的ViewController的viewDidLoad
方法中编写以下代码:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44.0
当您的约束正确时,您的表视图单元格内容大小将根据内容动态调整大小。
注意:
如果您正在使用UITableViewAutomaticDimension
,请勿使用tableview代理方法(heightForRowAtIndexPath)
来调整高度。
tableview.frame.size = tableview.contentsize 是有效的