是否可以滚动到某个部分而不是行?如果是这样的话?
顺便说一下。我正在使用一种方法来删除浮动标题。
以下是我用于移动到第一行所选部分的代码。
if (self.openSectionIndex != NSNotFound) {
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:section] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
这是删除浮动标题的代码
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (self.openSectionIndex != NSNotFound) {
if (scrollView.contentOffset.y<=DEFAULT_HEADER_HEIGHT&&scrollView.contentOffset.y>=0) {
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
} else if (scrollView.contentOffset.y>=DEFAULT_HEADER_HEIGHT) {
scrollView.contentInset = UIEdgeInsetsMake(-DEFAULT_HEADER_HEIGHT, 0, 0, 0);
}
}
}
这是我想要的,但我还想显示标题。
现在,标题隐藏在屏幕的顶部。
答案 0 :(得分:7)
而不是scrollToRowAtIndexPath
,请使用scrollRectToVisible
。您可以通过传入一个大小与表视图相同的矩形来获得精确定位。
因此,如果您希望将标题准确定位在顶部,请使用标题的框架,将高度设置为表格视图的高度,然后将其传递给scrollRectToVisible
。