2010-11-10 37 views
0

时被去选择我有我的willDisplayCell一些代码,选择一个给定的行/单元格..这部作品的UITableViewCell未接触新行

-(void) willDisplayCell ... 

.... 

if (somecodition) [cell setSelected] (dont remember the actual methodname) 

.... 

这就是我要完成

-(void) ... cellForRow... { 

    if <condition> setPrivateClassVar = indexPath 
} 

-(void) someMethod { 

    [myTableView reloadData]; 

    [myTableView selectRowAtIndexPath:PrivateClassVar ....] 

    // I expected the variable to be set in cellForRow method. 
} 
什么

工作正常,因为它突出显示了正确的行。但有时在UITableView完全显示并且我接触到表中的新行之后;当前选中的行/单元格仍然高亮显示,并且选中了两行。这是一个正常的行为?

回答

0

Afaik这不是默认行为。你确定你没有任何代码重新选择旧的行吗?

+0

我想我的问题是.. is willDisplayCell是一个放置自动选择行的逻辑的好地方吗?还是有更好的地方呢?有人告诉我把它放在[tableview reloadData]之后,但我认为这个调用是异步的。 – Arcadian 2010-11-10 19:42:56

+0

把它载入reloadData后。它不是异步的。据我所知,没有任何UI方法。它们在主线程中呈现。 – 2010-11-10 19:48:38

+0

我会再试一次。但我认为willDisplayCell被调用的时候它会覆盖我选中的单元格,导致它被取消选中 – Arcadian 2010-11-10 19:51:20