はぁ。二日間で二問目。私は UICollectionView があまり好きではなくなり始めています。
Ok。私は UICollectionView をセットアップし、うまく機能し、カスタム レイアウト オブジェクトを管理しています... er... レイアウト。コードを投稿したいのですが、たくさんあり、どの部分が関連するかわかりません。ほとんどの場合、このチュートリアルに従いました: http://skeuo.com/uicollectionview-custom-layout-tutorial
ここに問題があります。コレクション ビューを contentOffset 0,0 から離れてスクロールし、その境界をアニメーション化すると、既に表示されていて表示されたままになっているセルの開始位置が遠く離れてしまいます。それらは正しい場所に到着しますが、開始位置が約 60 ピクセル左すぎ、下すぎます。0,0からどれだけスクロールしても、毎回同じ量です。奇妙なことに、0,0 から離れない限り、すべてが思いどおりにアニメーション化され、何の問題もありません。どういうわけか、contentOffset が私のコンテンツ セルの現在のフレームと完全に無意味な方法で干渉しているように見えます。
それは本当に奇妙で、なぜそれが起こっているのか理解できません。誰でも手がかりを得ましたか?
[編集]もう少し情報。実験として、サイズ変更時に高さではなく幅のみが変更されるように、コレクション ビューのレイアウト スタイルを変更しました。Y の開始位置が正しいように見えるので、自動サイズ変更に関連する異常なバグである可能性があります。記録のために、さまざまなセルをチェックしましたが、それらはすべて上/左に設定されており、幅と高さが固定されているため、問題はありません。
[編集] そして、より多くの情報。境界が変更されると、レイアウト ビューを無効にするかどうかを尋ねられるようです。境界の変更をアニメートする唯一の方法は、YES を返すことです。ただし、次に発生するのは、collectionView がすぐに独自の境界をもう一度設定して、現在のオフセットをゼロ/ゼロに戻すことです。問題は、両方を行うと混乱することかもしれませんが、最初の呼び出しでのみ無効化すると間違った情報が得られますが、最初の呼び出しで無効化しないと、2 番目の呼び出しはまったく得られません。鶏卵。