如何检测何时未选择UITableView表格单元格?

时间:2009-07-06 02:35:04

标签: iphone uitableview grouped-table

我的iPhone应用程序中有一个开始日期/结束日期功能。它类似于iPhone的原生日历应用程序,除了没有“全天”选项。也就是说,用户所能做的就是输入开始时间/日期和结束时间/日期。

界面是一个带有两个单元格的简单分组UITableView。用户选择“开始”单元格或“结束”单元格(将其变为蓝色),然后使用UIDatePicker更改每个单元格的值。

我已经按预期工作了,除了用户可以在表外单击,这样就不会选择任何表格单元格。问题是,用户仍在编辑先前选择的单元格。

理想情况下,我可以限制用户始终选择一个表格单元格。除此之外,我决定能够检测到没有选择任何单元格,因此我可以在编辑任何内容之前截取UIDatePicker。

2 个答案:

答案 0 :(得分:1)

您可以实施willDeselectRowAtIndexPath中的UITableViewDelegate。返回nil并且不会取消选择该行:

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    return nil;
}

或者,你可以实现didDeselectRowAtIndexPath,你会知道它未被选中。但是你必须将它存储在一个成员变量或某个地方:

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath 

答案 1 :(得分:0)

从您的问题看,您在同一视图中看到了一个带有UIPicker的tableView。您可能希望将选择器放在单独的视图中,当用户选择其中一个单元格时,您可以将其推到屏幕上。使用这种技术,用户肯定必须选择其中一个单元格来编辑选择器中的信息。