恢复滚动位置uitableview

时间:2015-02-21 15:05:15

标签: ios objective-c uitableview

我有一个表视图,可以看到详细视图。当我从表格视图中单击后退时,我将返回到表格顶部。我希望它返回到所选行的位置。我知道我可以使用滚动来定位,但它需要一个索引路径。我是否正确地认为我需要创建一个索引路径属性并在方法调用中使用它。如果是这样,我在哪里填充它 - 在选择行/单元格方法中?我的表中有部分,所以它是索引路径部分,索引路径行?最后它是否被视为确实出现了?

2 个答案:

答案 0 :(得分:1)

也许你正在寻找这个:

tableView.contentOffset.y;

如果您的意思是 - 从详细控制器返回到主控制器,您可以在viewWillAppear方法中滚动到位置(在viewWillDissapear中保存tableView.contentOffset.y)。但我创建了新项目并且没有必要这样做,它从详细信息返回后自动打开主控制器并保存位置

答案 1 :(得分:0)

应该可以使用 - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated以这种方式使用它:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:selectedRow inSection:yourSection];
[yourTableView scrollToRowAtIndexPath:indexPath 
                     atScrollPosition:UITableViewScrollPositionTop 
                             animated:YES];

atScrollPosition可以采用以下任何值:

typedef enum {
    UITableViewScrollPositionNone,
    UITableViewScrollPositionTop,
    UITableViewScrollPositionMiddle,
    UITableViewScrollPositionBottom
} UITableViewScrollPosition;

我希望这有助于你