2

iPhone アプリケーションに開始日/終了日機能があります。「終日」オプションがないことを除けば、iPhone のネイティブ カレンダー アプリケーションと似ています。つまり、ユーザーができることは、開始時刻/日付と終了時刻/日付を入力することだけです。

インターフェイスは、2 つのセルを持つ単純なグループ化された UITableView です。ユーザーは Start セルまたは End セルのいずれかを選択し (青色に変わります)、UIDatePicker を使用してそれぞれの値を変更します。

ユーザーがテーブルの外側をクリックできることを除いて、すべてが期待どおりに機能しています。これにより、テーブルのセルが選択されなくなります。問題は、ユーザーが以前に選択したセルをまだ編集していることです。

理想的には、ユーザーが常にテーブル セルの 1 つを選択するように制限することができます。それがなければ、セルが選択されていないことを検出できることで解決するので、何かを編集する前に UIDatePicker をインターセプトできます。

4

2 に答える 2

1

willDeselectRowAtIndexPathからを実装できますUITableViewDelegate。戻り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 があるようです。ユーザーがセルの 1 つを選択したときに画面にプッシュする別のビューにピッカーを配置することができます。この手法を使用すると、ユーザーはピッカーで情報を編集するためにセルの 1 つを選択する必要があります。

于 2009-07-06T02:38:49.967 に答える