2016-04-30 2 views
0

commitEditingStyleを実装したグループ化されたUITableViewを使用して、テーブルから単一の行を削除します。 (私のUIViewControllerでは、いいえUITableViewController)。 また、チェックされた画像でカスタムセルを使用します。画像を変更するには、私は単純にこれを使用する:必要に応じて表示される「削除」の行をスワイプが、それは自動的にテーブルビュー内のすべての可視セルを選択解除されたときにUITableViewCellEditingStyleDeleteは、テーブルビュー内のすべての表示セルを自動的に選択解除します。

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
    if (selected) { 
     self.img_checked.image = [UIImage imageNamed:@"checked.png"]; 

    else { 
     self.img_checked.image = [UIImage imageNamed:@"unchecked.png"]; 
    } 
} 

私の問題があり、

どのように私ができますこれを行うことからtableviewを防止する?

+0

なぜセルを選択したままにしますか? – Lion

+0

私のテーブルビューには、選択された5つの可視行があります。もし私が削除のためにスワイプすると、setSelectedはすべての可視行によって自動的に呼び出されます。確かに、私は他の行を選択したい、私もそれらに触れることはありません、私は私が気にしない、削除されます削除);しかし、私はちょうどswieし、削除をキャンセルすると、すべての行が選択されていない滞在 –

答えて

1

選択した状態のインデックスまたはインデックスパスを保存してから、cellForRowまたはwillDisplayCell:delegatesでチェックする必要があります。辞書や配列を使って作成することができます。 2番目の方法は、セルに設定しているオブジェクト内の別の変数に保存することです(そうした場合)。

+0

なぜ私はそれらを救うべきですか?セルを選択すると、状態はすでに各セルに保存されています。しかし、私は自分自身に尋ねます、なぜ - (void)setSelected:(BOOL)はアニメーション化されました:(BOOL)アニメーション化されたメソッドが呼び出されましたか?私は表示されている行を選択しません。 iOSがそのメソッドを自動的に呼び出すため、1行をスワイプすると表示されるすべての行が選択解除されます。だから、すべての機能を使いやすくするためには、セルを選択するための標準のリンゴコールバックメソッドは無用ですか? –

+0

これはインターフェイスの選択ですが、自分で選択するセルをシステムに指示する必要があります。このリンクをチェックしてください:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/ManageSelections/ ManageSelections.html –

関連する問題