簡體   English   中英

如何檢測何時未選擇UITableView表格單元格?

[英]How do I detect when no UITableView table cell has been selected?

我的iPhone應用程序中有開始日期/結束日期功能。 它與iPhone的本機Calendar應用程序類似,不同之處在於沒有“全天”選項。 也就是說,用戶所能做的就是輸入開始時間/日期和結束時間/日期。

該接口是具有兩個單元格的簡單分組的UITableView。 用戶選擇“開始”單元格或“結束”單元格(將其變為藍色),然后使用UIDatePicker更改每個單元格的值。

除了用戶可以在表外部單擊之外,其他所有工作均按預期進行,這不會導致選擇任何表格單元格。 問題是,用戶仍在編輯先前選擇的單元格。

理想情況下,我將能夠限制用戶始終選擇一個表單元格。 除非如此,否則我將能夠檢測到未選擇任何單元格,因此可以在UIDatePicker編輯任何內容之前對其進行攔截。

您可以從UITableViewDelegate實現willDeselectRowAtIndexPath 返回nil並且不會取消選擇該行:

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

或者,您可以實現didDeselectRowAtIndexPath並且您會知道它未被選中。 但是您必須將其存儲在成員變量中或某個地方:

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

從您的問題來看,在同一視圖中似乎有一個tableView及其下面的UIPicker。 您可能希望將選擇器放在一個單獨的視圖中,當用戶選擇一個單元格時,將其推到屏幕上。 使用這種技術,用戶肯定將必須選擇一個單元以編輯選擇器中的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM