2016-05-20 12 views
-1

のは、私は私のデータソースを表す項目のリストを持っているとしましょう:cellForRowAtIndexPathは同じ「アイテム」に対して複数回呼び出されますか?

self.items = [User]() 
for model in self.fetchedItems(20){ 
    self.items.append(model) 
} 
self.tableView.reloadData() 

がのが私の画面はわずか5つの項目に適合することを言ってみましょう。 配列(indexPath = 0)の最初の項目がユーザHannahであるとします。

ユーザーが一番下にスクロールして、すべての方法でバックアップすると、cellForRowAtIndexPathHannahに呼び出されますか?

+0

どうぞお試しください。 – rmaddy

答えて

2

可能性があります。いずれにせよ保証はありません。 1つの可能性は、Hannahオブジェクトを保持していたセルが、後のインデックスパスのデキューメソッドによって返され、次にスクロールバックすると、cellForRowAtIndexPathがセル0のゲインと呼ばれるようになり、セル5に渡されました。つまり、複数の行に同じセルが使用される可能性があります。

デキュー時にセルの状態全体を設定することが非常に重要です。おそらくprepareForReuseをヘルパーとして使用している可能性があります。 reloadDataまたはbegin/endの更新を呼び出して明示的にテーブルビューに指示しない限り、配列の状態を固定しておくことも重要です。

関連する問題