0

カスタムUITableViewCellでUITableViewを使用して、大量のデータを表すアプリを開発しています。

tableViewが編集モードに設定されている場合、選択したデータセットをさらに使用するための複数選択がサポートされます。

を使用-tableView:didSelectRowAtIndexPath:didDeselectて、行UIImageViews画像を小さな目盛りに変更し、選択範囲を配列に格納しています。セルを選択すると、背景が水色になります(iOS標準)。

上下にスクロールしているとき、セルの背景はまだ水色ですが、画像はデフォルトにリセットされ、cellsisSelectedプロパティはNOです。もう一度選択すると、メソッドが呼び出されます-tableView:didSelectRowAtIndexPath:

しばらくデバッグした後、再利用可能な識別子が間違っていることが判明しました。しかし、私がそれを修正すると、下にスクロールすると同じ12個のセルが何度も繰り返されました。そして、isSelectedプロパティはまだにリセットされNOます。

tableViewをスクロールしながら、選択した行を維持するにはどうすればよいですか?!そして:セルが青で強調表示されている(または選択済みとしてマークされている)のに、isSelectedプロパティがリセットされるのはNoなぜですか?

助けてくれてありがとう、ジュリアン

4

1 に答える 1

0

永続的なコントローラー状態を保持するためにセルを使用しないでください。代わりに、を保持し、選択した各セルのを配列NSArrayに追加NSIndexPathします(ユーザーがセルの選択を解除した場合は、それらを削除します)。

次に、cellForRowAtIndexPath:選択したセルの配列にインデックスパスが含まれているかどうかに基づいて、セルを正しく構成していることを確認してください。

于 2012-09-07T11:04:50.577 に答える