这个功能很完美,但我想让它成为一次性功能,而不是固定功能。当我用其他数据更改tableview时,数据显示在上一个tableview的索引处。所以我的解决方案是实现下面的代码。当我实现它时,它可以工作,但是当我向下滚动时,它会一直向上滚动,所以几乎不可能进一步向下滚动。当我改变tableview时,知道如何让它只执行一次吗?
代码:
[tableView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO];
编辑21 8月:
伙计们,非常感谢你们!代码在cellforrowatindexpath中。我将它移动到改变tableview的函数内部,它就像一个魅力:D
答案 0 :(得分:1)
它是一次性功能。很可能,你的这个代码再次执行&再次。如果您将此保留在cellForRowAtIndexPath:
这样经常调用的函数中,则可能是导致此问题的原因。你把它放在哪里了?
HTH,
阿克沙伊
答案 1 :(得分:1)
如果您正在使用新数据重新加载表视图并将代码放在那里,则可以覆盖reloadData方法。在你的表视图控制器中这样的东西就足够了:
- (void)reloadData {
[super reloadData];
[tableView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO];
}
如果每次向下滚动时它都向上滚动,我假设您将代码放在cellForRowAtIndexPath方法中,每次要呈现单元格时都会调用该方法。这不是放置该代码的正确位置。