Scrolltorectatindexpath将无法滚动到特定部分?

时间:2016-07-07 09:13:59

标签: ios iphone uitableview

我有一个应用程序,我希望scrolltoindexpath到特定部分。我这样做

[table scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:anIndex] atScrollPosition:UITableViewScrollPositionTop animated:NO];

[table reloadData];

所有工作正常。但问题是tableview始终保持在最低点。

它不会在那之后向上滚动。它会始终将最后一个单元格保留在底部。之后不会向上滚动。我将约束设置为(0,0,0,0)。

我想我在这里想念一下。任何人都可以指导我吗?

1 个答案:

答案 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];

添加一个小延迟