2

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

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

当表格视图填充超出其内容大小时,这可以正常工作,因此它是可滚动的。问题是,例如,每个部分仅包含 1 个单元格。然后整个表将适合屏幕,因此上面的代码不会触发,因为它无论如何都会橡皮筋回来。

任何人都知道解决这个问题?

4

2 回答 2

1

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

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

你计算someValue的地方把桌子带到你想要的地方。

于 2012-07-03T10:50:38.823 回答
1

我自己回答这个问题,因为没有任何想法。

根据我的理解,这是不可能实现的。如果可以,表格视图将尝试滚动到该行。使其工作的唯一方法是将内容大小设置为足够大以使表格滚动。

于 2012-07-11T11:41:41.437 回答