我有一个带有行和节的UITableView。
我想滚动到第二部分的第一项,以使第一部分的标题可见。就像我手动滚动列表直到到达该状态一样。

---- TOP OF SCREEN ----
Header of first section
Header of the second section
cell 1
cell 2
cell 3
Header of the third section
cell 1
cell 2
...


scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]
没有完成这项工作,它隐藏了第一部分的标题。

最佳答案

我们继续前进。我根据凯文的想法找到了这种方法。为了能够将动画设置为YES,我使用UIScrollView的委托方法捕获了动画的结尾。有用。但是任何不做2个动画的解决方案将不胜感激。关于如何执行此操作的任何想法?

- (IBAction) scrollToToday:(BOOL)animate {
    [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1] atScrollPosition:UITableViewScrollPositionTop animated:animate];
    if (animate == NO) [self showFirstHeaderLine:NO];
}

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
    [self showFirstHeaderLine:YES];
}

- (void) showFirstHeaderLine:(BOOL)animate {
    CGRect headerRect = [self.tableView rectForHeaderInSection:1];
    CGPoint scrollPoint = headerRect.origin;
    scrollPoint.y -= headerRect.size.height;
    [self.tableView setContentOffset:scrollPoint animated:animate];
}


对此代码来说,动画设置为YES的过程应该在scrollViewDidEndScrollingAnimation和showFirstHeaderLine之间无限循环...它循环,是的,但是只有一次...关于为什么的任何想法?

关于iphone - Iphone:如何滚动到第二部分的第一单元格,使第一部分的标题可见,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4597839/

10-09 13:23