UITableViewCell的selecte与deselect

On 05/04/2011, in Development, iOS Dev, by ultragtx

首先要从一个我遇到的问题谈起,一个基于NavigationBar的App,开始时我有一个UITableViewController,其中每个UITableViewCell点击后都会push另一个ViewController,每次点击Cell的时候,Cell都会被选中,当从push的ViewController返回的时候选中的Cell便会自动取消选中(有动画效果)。后来由于某些原因我把这个UITableViewController改成了UIViewController,之后就产生了一个问题:每次返回到TableView的时候,之前选中的Cell不能自动取消选中,经过查找得知:

UITableViewController有一个clearsSelectionOnViewWillAppear的property,

而当把UITableViewController修改成UIViewController后,这个属性自然就不存在了,因此我们必须手动添加取消选中的功能,方法很简单,在viewWillAppear方法中加入:

[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];

即可,估计UITableViewController也是用类似的方法来实现取消选中的功能的。

–以上–

Tagged with:  

3 Responses to UITableViewCell的selecte与deselect

  1. liuxing说道:

    非常好,我找了好长时间了,一直在纳闷是怎么回事,斑竹威武

  2. Diaoser说道:

    newbie 容易和 [cell setSelected:NO animated:YES] 混淆

发表评论

电子邮件地址不会被公开。 必填项已用*标注