我有一个应用程序,我希望scrolltoindexpath
到特定部分。我这样做
[table scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:anIndex] atScrollPosition:UITableViewScrollPositionTop animated:NO];
[table reloadData];
所有工作正常。但问题是tableview始终保持在最低点。
它不会在那之后向上滚动。它会始终将最后一个单元格保留在底部。之后不会向上滚动。我将约束设置为(0,0,0,0)。
我想我在这里想念一下。任何人都可以指导我吗?
答案 0 :(得分:1)
这里主要有两个问题。
1)
[table scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:anIndex] atScrollPosition:UITableViewScrollPositionTop animated:NO];
使用动画false
,即使它在主线程上运行,您也必须强制调用dispatch_get_main_queue()
。这应该是一个iOS错误。
2)当您尝试滚动tableView时,它会调用cellForRowAtIndexPath
获取可用的单元格。然而,紧接的下一行是调用reloadData
,它试图调用相同的dataSource方法。所以它可能与其他人发生冲突。所以我建议为[table reloadData];