将UITableViewCell最后一个单元格强制到视图顶部

时间:2013-11-13 17:41:01

标签: objective-c uitableview scroll

我们有一个UITableViewCell,其行列表就像手风琴列表一样。

当用户点击手风琴tableview单元格时,它会展开tableview,并将单元格推向顶部,无论它是哪一个。

我们使用:

[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]

这会将一个单元格滚动到顶部,它适用于前几个单元格,但是越接近底部,UITableViewCell就越不可能冒泡到视图的顶部。

最后2或3个单元格不会出现在tableview的顶部。

我认为这是一个内容插入问题并尝试过;

myTableView.contentOffset = CGPointZero;

我也试过

[tableView scrollRectToVisible:CGRectMake(0, 0, tappedCell.bounds.size.width, tappedCell.bounds.size.height) animated:YES];

但这些并不能让最底层的细胞泡到顶端。

我想知道,是否可以将给定的UITableViewCell强制到tableview的顶部,并确保内容偏移强制在其下面填充以确保它具有填充以强制它填充整个tableview区域。

现在谢谢。

1 个答案:

答案 0 :(得分:0)

UITableView的内容高度等于它包含的所有单元格的总高度。 UITableView继承UIScrollView,滚动受其内容大小的限制。您可以尝试通过它的contentSize属性显式设置表的内容大小,例如:

tableView.contentSize = CGSizeMake(tableView.frame.size.width, cellsCount * cellHeight + someNumber);).

如果这没有帮助,那么您可以更改表的contentInset,例如:

tableView.contentInset = UIEdgeInset(0, 0, someNumber, 0);