2012-01-16 6 views
1

各セルにボタンがあります。それが押されると、選択を示すためにイメージが変更されます(基本的にチェックボックス)。下にスクロールしたら...上にスクロールバックします。イメージは元のイメージに戻されます。uitableviewをスクロールすると画像が元に戻る

この質問はこれにかなり似ています

Preserve Cell Image After Scrolling UITableView

など。しかし、私は良い答えを見つけることができないようです。私はそれがセルが画面から消えるときにuitableviewがどのように設定されているかに戻っていることを理解しています。しかし、どのように私はuitableviewに変更された画像を保存するので、元に戻ってスクロールしません?

ありがとうございます! =)

答えて

4

セルが再利用されるため、元に戻っています。あなたのセルが画面から出るとき、それはビューから取り出され、再利用プールに戻されます。その後、再びcellForRowAtIndexPathのキューから取り出し、デフォルトとして設定し直します。

あなたがリンクしている質問は、あなたが従わなければならないものです。セルの状態をビューコントローラに保存してから、cellForRowAtIndexPathに再度設定するときは、その状態をロードしてセルを適切に設定する必要があります。

メソッドの簡単な方法の1つはNSArrayで、テーブルの行数と同じサイズに設定し、ブール値を含む各行にNSNumberを格納するだけです選択状態にするかオフにします。ユーザーがトグルすると、配列の値を切り替えると、cellForRowAtIndexPathの値が読み取られ、適切に設定されます。

+0

ああ、そうです... NSArrayのやり方は完璧です。ありがとう! – TheTC

0

私はあなたのテーブルビューのセルのチェックボックスが、選択された状態に状態を変更していると仮定しています。 UI要素を使用してアプリの状態を維持しないでください。つまり、ユーザーがチェックボックスをタップすると、そのイベントを使用して、アプリ内のデータオブジェクトの状態変化を何らかの形で反映する必要があります。その後、そのセルを再度表示する必要がある場合は、以前に保存した状態でセルを構成します。これは、セルの再利用やビューのアンロードなどのことを可能にし、すべての良い習慣の周りです。

関連する問題