バックグラウンド:
UICollectionViewController
ユーザーが切り替えることができる2つのモードのいずれかでアイテムを表示するがあります。各モードは、異なるクラスのを使用しますUICollectionViewCell
。これらのモードを「リストビュー」と「グリッドビュー」と呼びましょう。
モードを切り替えるときは、を呼び出します。これにより、正しいセルクラスを使用してコレクションビューが再描画.reloadData
されます。UICollectionView
ここではすべてが正常に機能します。
現在:UICollectionViewCell
あるタイプのセルのサブクラス内で、それを含むコレクションビューがモードを切り替えたときに通知を受け取りたいです。視覚的には、画面に表示されていたセルが消えます。コレクションビューは、他のタイプのセルで完全に描画されます。元に戻すと、セルが再表示されます。
質問:
UICollectionViewCell
親コレクションビューからaが「削除」された(つまり、表示されなくなった、内部で何が起こっているのかまだわからない)場合、どうすれば通知できますか?
ノート:
prepareForReuse
コレクションビューupdateData
によってセルが含まれなくなった場合、はセルで呼び出されません。willTransitionFromLayout:toLayout:
(空のレイアウト?)は呼び出されません。- オーバーライド
didMoveToSuperview
は役に立ちません。呼び出されません。 .hidden
セル上またはセル上での観察.alpha
は機能しません。- セル
dealloc
は呼び出されません。再利用キューにとどまります。
セル内の何かが変化している必要があり、それを観察したり、フックしたりできます。それは何ですか?