2011-04-11 17 views
5

iPadの連絡先に似たテーブルベースのインターフェイスを作成しています。このインターフェイスでは、一番下の空白の行をタップして行のリストに追加できます。テーブルは常に編集モードにあり、空でない行には標準の削除編集アイコンが左側に表示されます。ユーザーが最後の空行を入力するとすぐに、削除アイコンが左側に追加され、新しい空白行が追加されます。コンテンツに応じてUITableViewCellの編集スタイルを更新する

誰でも、UITableViewをオンデマンドで編集スタイルを更新する方法を知っていますか?すべてが機能しますが、削除アイコンは、ユーザーがビューを外にスクロールしてからビューに戻すまで表示されません。ここで

は私のeditingStyleForRowAtIndexPathの実装です:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
      editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (/* text field contains data */) 
    { 
     return UITableViewCellEditingStyleDelete; 
    } 
    else 
    { 
     return UITableViewCellEditingStyleNone; 
    } 
} 

答えて

10

私はこの同じ問題を昨日戦った。基本的には、テーブルビューの編集モードのプロパティを切り替える必要があります。これを実行すると、セルのeditingStyleが更新されます。ここで

は私のためにトリックを行うコードです:

self.tableView.editing = NO; 
self.tableView.editing = YES; 

これは、連絡先アプリとしての効果の正確な同じ種類であることを私には思われるものを提供します。最低限、あなたのeditingStyleが更新されます。

+0

それは動作します、ありがとう!おそらく、私は新しい質問でこれを尋ねるべきですが、連絡先のように、削除アイコンがタップされているときにアクティブレスポンダのUITextFieldのカーソルを削除する方法も見つけましたか? –

+0

いいえ、私は本当に取り扱いに関わったことではなかったので、私はそれを見たことがありません。 –

+0

私はこれを数時間前に見つけました。 – smparkes

0

は、編集中の行にreloadRowsAtIndexPaths:withRowAnimation:を呼び出してみてください。 (私はそれがあなたのテキストフィールド上の最初のレスポンダのステータスを混乱させるかどうかはわかりません)

+0

はい、残念ながら、最初のレスポンダを台無しにします。 –

関連する問題