0

cellForRowAtIndexPath が間違ったセルを返すという問題が発生しているため、間違ったセルに対して他のアクションを実行しています。

いくつかの UIImageViews (+テキスト +ボタン) を合わせているため、非常に大きなカスタム セルを作成したので、セルが画面全体を占有します。下にスクロールして2つのセルが同時に画面に表示されている場合、上のセルをタップすると、下のセルのコンテンツに移動します(セル内のボタン操作も同様)。

これは IB に固有のものである可能性があると考えたので、コードですべてを再構築しましたが、それでも同じ動作をしています。

これを修正して正しい indexPaths を維持する方法はありますか?

4

1 に答える 1

2

あなたの見方が間違っていると思います。cellForRowAtIndexPath が間違ったセルを返さない。dequeueReusableCellWithIdentifier などを使用している場合は、リサイクルされた可能性のある新しいセルを返すだけです。その場合、dequeueReusableCellWithIdentifier は、上からスクロールしたばかりの古いセルを返します。新しいセル (新しいセルまたはリサイクルされたセル) を取得し、cellForRowAtIndexPath 内に正しい値を詰め込むのはあなたの仕事です。次に、返されるセルは「正しい」セルになります。これは、正しい値をすべて書き込んだためです。したがって、cellForRowAtIndexPath の実装を見て、渡されたインデックス パスの正しい値が、cellForRowAtIndexPath が返すセルに詰め込まれていることを確認します。

于 2012-12-30T06:50:27.687 に答える