我有一个包含3个部分的表格视图:“昨天,今天,明天”。启动表视图时,我希望“今日”部分成为最上面可见的部分。因此,我使用此功能:

[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1] atScrollPosition:UITableViewScrollPositionTop animated:NO];

当表格视图的内容大小超出其内容大小,因此可以滚动时,此方法会很好地工作。问题是例如每个节仅包含1个单元格。然后整个表将适合屏幕,因此上面的代码将不会触发,因为无论如何它都会回弹。

有人知道解决方案吗?

最佳答案

尝试设置表格的edgeInsets。这将以您指定的偏移量开始绘制表格。

UIEdgeInsets edgeInsets = UIEdgeInsetsMake(someValue, 0, 0, 0);
self.tableView.contentInset = edgeInsets;

计算someValue的位置,以将表放到所需位置。

10-08 05:47