将UITableView滚动到特定部分

时间:2016-07-18 11:15:18

标签: ios objective-c uitableview

我希望我的UITableView滚动到特定部分,我该如何实现这一目标。我已经尝试了很多关于SO的建议,并且由于一些奇怪的原因,似乎没有任何工作。任何帮助表示赞赏。谢谢。

2 个答案:

答案 0 :(得分:3)

尝试使用以下代码行:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        NSInteger Section=3;//Change as required
        NSInteger Row=0;//Change as required

        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:Row inSection:Section];

        [tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];

});

编辑:

使用以下NSIndexPath滚动到包含0行的部分:

[NSIndexPath indexPathForRow:NSNotFound inSection:section]

滚动桌面视图,以便显示所需的部分,但不一定在顶部或底部:

CGRect sectionRect = [tableView rectForSection:indexOfSectionToScrollTo];
[tableView scrollRectToVisible:sectionRect animated:YES];

要滚动以使该部分位于顶部,请执行以下操作:

CGRect sectionRect = [tableView rectForSection:indexOfSectionToScrollTo];
sectionRect.size.height = tableView.frame.size.height;
[tableView scrollRectToVisible:sectionRect animated:YES];

在此处查看答案:How do I scroll a UITableView to a section that contains no rows?

答案 1 :(得分:0)

尝试使用此

[self.tableView scrollToRowAtIndexPath:YOUR_INDEX_PATH_OF_SECTION atScrollPosition:UITableViewScrollPositionTop animated:YES]