当手指放在其他单元格上时,将取消选择所选的tableViewCell

时间:2011-02-11 09:04:41

标签: iphone uitableview

我有自定义tableViewCell的tableview。我想解决的问题是,当选择一个单元格,并且用户将手指放在另一个单元格上时,将取消选择当前选定的单元格。如果用户决定滚动(不选择其他单元格)并抬起他的手指,则前一个单元格再次进行选择。只要用户确定选择了另一个单元格,我希望所选单元格保持高亮显示。

我试图在tableViewCell的setSelected方法中处理这个问题,但是我不能区分这种情况和用户滚动 - 在这种情况下,单元格被重用(显然重用的单元格接收setSelected方法调用)。

2 个答案:

答案 0 :(得分:1)

我已经能够通过创建tableView的子类来解决它。我已经覆盖了touchesBegan,Ended方法,我设置了一个名为gIsTouching的全局bool变量,在开始时为YES,在结束时为NO(重要的是:你必须在调用[super touchesBegan ...]和[super touchesEnded]之前设置这个变量。 ..])。

然后在自定义单元格的setSelected方法中,如果gIsTouching为YES,我不会做任何事情,否则我会做出选择。

希望这有助于其他有类似问题的人。

答案 1 :(得分:0)

如果我没弄错的话,你正在寻找[cell setSelectionStyle:.... settor