2011-08-21 60 views
0

这功能完美,但我想使它成为一次功能,而不是固定功能。当我用其他数据更改tableview时,数据显示在前一个tableview的索引处。所以我的解决方案是实现下面的代码。当我执行此操作时,它可以正常工作,但是当我向下滚动时,它会一直滚动,因此几乎不可能进一步向下滚动。任何想法如何让它只执行一次当我改变tableview?iphone - scrollRectToVisible问题

代码:

[tableView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO];  

编辑8月21日:

,大家好,非常感谢你!代码在cellforrowatindexpath中。我把它移到了改变tableview的函数里面,它像一个魅力一样工作:D

+0

你不会告诉我们你现在在哪里调用这个函数。除了上下文外,它没有任何意义。但尝试在将新数据推送到表视图的相同函数中运行该函数。 –

回答

1

您可以覆盖reloadData方法,如果这是你如何重装新的数据表视图,并把代码在那里。像这样的事情在你的表视图控制器应该足够了:

- (void)reloadData { 
    [super reloadData]; 

    [tableView scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO]; 
} 

如果它每次向下滚动时滚动起来,我想你把代码cellForRowAtIndexPath方法中,将被调用每次要存在于细胞。这不是放置该代码的正确位置。

+0

它根本不起作用。我在UIViewController下有UITableView。你是正确的,我把代码放在cellForRowAtIndexPath中。 – wagashi

1

它是一次函数。最有可能的是,你的这段代码再次执行&。如果您将此功能保存在频繁调用的函数cellForRowAtIndexPath:中,则可能是此问题的原因。你把它放在哪里?

HTH,

阿克沙伊

+0

你说得对。我把代码放在cellForRowAtIndexPath中。 – wagashi

+0

什么时候你想滚动? cellForRowAtIndexPath不是正确的地方。 – Akshay