2017-08-22 8 views
0

複数のセクションを持つテーブルビューがあります。最初のセクションのみがcanEditRowAtを介して編集/選択可能です。UITableViewは、canEditRowAtで編集不可能な行の公開インジケータと選択を削除します。

編集可能/選択不可の他のセクションについては、その開示インジケータが残ります。選択を無効にすることはできますが、公開インジケータを消して、編集モードのときにこれらの行をタップできないことをユーザーが知るようにします。何か案は?

テーブルをリロードして.accessoryTypeを切り替えることはできますが、テーブルをリロードするとsetEditing(true、animated:true)でシステムアニメーションが終了します。

+0

あなたの質問を関連コードで(テキストではなく写真として)編集してください。 – rmaddy

答えて

0

このスニペットを試してみてください、目に見える全ての開示指標を削除するには:

self.tableView.visibleCells.forEach { 
    $0.accessoryType = .none 
} 

これは、任意のシステムのアニメーション、または他のものを殺すことはありません。もちろん、ループ内のテストを追加して、削除するセルを選択したり、アクセサリを選択したりすることはできません。

+0

self.tableView.setEditing()を呼び出した後、これを実行することをお勧めしますか?私はそれが正しい表示するために、細胞をリフレッシュする必要があると仮定?または、これを実行する代理人はいますか? – eddit

+0

私はsetEditingの直後にそれを行います – Dean