0

我使用默认的 Xcode 模板创建了一个 UItableView 并将其配置为显示五行。我选择表格上的第一个单元格。当我选择另一个单元格时,我注意到第一个单元格保持选中状态,直到我将手指从第二个单元格上移开。

样本:http: //img190.imageshack.us/img190/7184/cellsz.jpg

我希望一个单元格在触摸时被选中,而不是在触摸删除时被选中。我在网上和苹果文档中进行了搜索,但是当用户触摸屏幕进行选择时,我没有找到调用哪个方法。

有没有人有这方面的一些信息?

4

3 回答 3

2

最后,我成功地抑制了这种双重选择效应。

当系统检测到一个单元格上的内部事件时,该单元格将被选中。在它被选中之前,单元格有一个高亮状态,在触摸时出现。

要解决此问题,我必须- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated在我的自定义 UITableViewCell 中覆盖该方法,并且在此方法中不执行任何操作。

这样,表格将永远不会同时有两个选定的样式单元格。

编辑后引用

这个解决方案对我来说已经足够了,但它不能解决我第一次请求在“触摸”事件而不是“触摸”事件上更改单元格的选择。

好吧...我认为这是不可能的。如果我们有这个选项,当我们只想在表格视图中滚动时,我们可以选择一个单元格。

于 2009-11-03T11:34:28.097 回答
1

我不知道你的问题的答案,但有一个报价。您可以在您的

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

委托方法。然后调用[tableView deselectRowAtIndexPath:indexPath]

于 2009-10-23T14:00:05.180 回答
0

没有框架提供的解决方案来选择多行。Morion 有一个很好的方法可以通过复选标记来做到这一点。您还可以查看 Matt Gallagher 的这篇文章,他在其中实现了您想要的。

于 2009-10-23T14:09:47.317 回答