以前の回答は機能しますが、スーパーを呼び出さなかったことが原因である可能性があることを発見しました。のドキュメントではこれについて言及していませんが、同じ方法UICollectionReusableViewののドキュメントでは言及しています。UITableViewCell
- (void)prepareForReuse
{
[super prepareForReuse]
// Your code here.
}
古い答え:
これはのバグである可能性がありますUICollectionView。
何が起こっているのかというと、以前に選択されたセルが再利用され、選択された状態を維持しているということです。コレクションビューがselected「NO」に設定されていません。
prepareForReuse解決策は、セルの選択された状態をリセットすることです。
- (void)prepareForReuse
{
self.selected = NO;
}
再利用されたセルが選択されている場合、コレクションビューは呼び出されたselected後に「YES」に設定されます。prepareForReuse
これはUICollectionView、それ自体で行うべきことです。ありがたいことに、解決策は簡単です。残念ながら、私は自分の選択した状態を追跡することで、このバグを回避するために多くの時間を費やしました。セルが小さい別のプロジェクトに取り組むまで、なぜそれが起こっているのかわかりませんでした。