点击部分索引后滚动过部分标题?

时间:2015-03-04 06:25:58

标签: ios uitableview uiscrollview

我已经实现了UITableView,每个部分上方都有节标题。我已经设计了具有分组样式的表格,因此标题会与表格一起滚动而不是固定到顶部。我还添加了一个部分索引,以便用户可以点击/滑动以跳转到特定部分。问题是跳转到该部分,但它显示顶部的节标题。在这种情况下,这是不受欢迎的 - 我想滚动,因此第一个单元格的顶部位于屏幕顶部,该部分标题不可见。

当用户点击UITableView的部分索引中的图标时,如何滚动显示部分标题?

2 个答案:

答案 0 :(得分:0)

找到解决方案。也许有一个更清洁的解决方案,但这对我来说效果很好。

返回-1以防止在调用该方法时表视图滚动到任何部分。在返回之前,添加逻辑以通过获取和修改下一个单元格的框架滚动到所需位置。

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
    CGRect nextRowRect = [tableView rectForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:index]];
    nextRowRect.origin.y -= tableView.rowHeight;
nextRowRect.size.height += tableView.frame.size.height - tableView.contentInset.top - tableView.contentInset.bottom - tableView.rowHeight;
    [tableView scrollRectToVisible:nextRowRect animated:NO];

    return -1; //prevent auto scroll
}

答案 1 :(得分:0)

试试这个

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 section:desiredSectionIndex];
[tableView scrollToRowAtIndexPath: indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];