2

我的 iPhone 应用程序中有开始日期/结束日期功能。它与 iPhone 的本机日历应用程序中的类似,只是没有“全天”选项。也就是说,用户所能做的就是输入开始时间/日期和结束时间/日期。

该界面是一个简单的分组 UITableView,有两个单元格。用户选择 Start 单元格或 End 单元格(将其变为蓝色),然后使用 UIDatePicker 更改每个单元格的值。

我已经按预期进行了一切工作,除了用户可以在表格外部单击,这会导致没有选择任何表格单元格。问题是,用户仍在编辑先前选择的单元格。

理想情况下,我将能够限制用户始终选择其中一个表格单元格。除此之外,我会满足于能够检测到未选择任何单元格,因此我可以在 UIDatePicker 编辑任何内容之前拦截它。

4

2 回答 2

1

您可以willDeselectRowAtIndexPathUITableViewDelegate. 返回nil并且该行不会被取消选择:

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

或者,您可以实现didDeselectRowAtIndexPath并且您会知道它未被选中。但是您必须将其存储在成员变量或某处:

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath 
于 2009-07-06T02:39:51.837 回答
0

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

于 2009-07-06T02:38:49.967 回答