我想通过点击 UITableView
侧面的 sectionIndexTitles
来允许滚动浏览我的 UITableView
。到目前为止,我的解决方案如下:
- (NSInteger)tableViewUITableView *)tableView sectionForSectionIndexTitleNSString *)title atIndexNSInteger)index
{
NSIndexPath *matchingIndexPathForTitle = [self matchingIndexPathForSectionIndexTitle:title];
if (matchingIndexPathForTitle) {
[tableView scrollToRowAtIndexPath:matchingIndexPathForTitle
atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
return 1;
}
但似乎从 iOS9 开始它总是滚动到 UITableView
我可以保证 matchingIndexPathForTitle
是正确的(例如第 1 节,第 22 行),并且更改为 animated:NO
也没有什么不同。
你有吗
由于 sectionForSectionIndexTitle
负责滚动到右侧部分,而不是单元格,因此在此方法中返回有效的部分索引号将取消所有自定义滚动事件。
为了滚动到一个单元格,必须阻止滚动到该部分。这可以通过返回无效的节索引来完成,例如-1
- (NSInteger)tableViewUITableView *)tableView sectionForSectionIndexTitleNSString *)title atIndexNSInteger)index
{
NSIndexPath *matchingIndexPathForTitle = [self matchingIndexPathForSectionIndexTitle:title];
if (matchingIndexPathForTitle) {
[tableView scrollToRowAtIndexPath:matchingIndexPathForTitle
atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
return -1; // this will do the trick and not scroll to any section
}
关于ios - 使用 sectionForSectionIndexTitle 在 UITableView 中快速滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33518973/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |