2016-12-03 10 views
2

When I enter editing modeBefore entering editing modeのiOS indexPathsForSelectedRowsと初期選択

私はサポートされている機能のための細胞の右側に示したチェックマーク付き製品の機能を示していますのUITableViewを持っています。このアプリでは、ユーザーがより多くの機能をチェックしたり、他の機能をオフにしたり、UITableViewがマルチセレクションモードをオンにして編集モードに入ったりすることができます。問題は、すでにチェックされている機能を設定したいのですが(ユーザにチェックを外させるため)、indexPathsForSelectedRowsは読み取り専用で、グリッドの入力時にすでに選択されているように、一部の行を初期化する方法が見つかりませんでした編集モード。その結果を得る方法はありますか?どんな助けでも大歓迎です。

写真は2つの状況を示しています。テーブルビューが編集モードでないときは、チェックマークの付いたアクセサリがあります。テーブルビューが編集モードになり、複数の選択が有効になっているとチェックボックスが表示されますが、チェックされずにプログラムでチェックすることはできません...または少なくともそれは外観です

+0

"このアプリでは、より多くの機能をチェックしたり、他の機能をオフにしたり、UITableViewが複数選択モードで編集モードに入ることができます。また来てね? –

+0

ファインダでコマンドをクリックするのと同じように@ElTomato – Fluidity

+0

アイデアは、複数のセルが既に選択されているマルチ選択で編集モードでグリッドを入力することです。デフォルトでは、すべてのセルがチェックされていないということです。それは私には良くないので、編集モードに入る前にいくつかのセルをチェックして、チェックしてみるようにします。今はより明確です。 – Sergiob

答えて

0

チェックマーク選択スタイルで、あなたはdidSelectRowAtIndexPath方法

0

OKで

tableView.deselectRow(at: indexPath, animated: true)

を使用しようとすることができます...最後に、私は方法を見つけました。私のUITableViewは、

override func setEditing(_ editing: Bool, animated: Bool) { 

     super.setEditing(editing, animated: animated) 

     tableView.selectRow(at: ....., animated: true, scrollPosition: .none) 
    } 

をオーバーライドして、そこに私が編集モードで確認したい行を選択するために十分であるという問題を解決するために...通常モードと編集モードで有効に複数行の選択で無効に選択を持っていました。 これで問題は解決します。

関連する問題