1

他の多くのビューの間にUICollectionViewがあります。これらはすべて、制約を使用してレイアウトされています。コレクションビューの高さは、他のビューのすべての高さとそれらの間のギャップの後の残りのスペースです。

コレクションの下のビューの1つが拡大されて、コレクションビューが短くなる場合があります。

これは、セクションヘッダー(補足ビュー)の位置がビューの縮小と同じ量だけ上に移動することを除いて、期待どおりに機能しますが、データセルは同じ場所に残ります。これで、ヘッダーがセルと重なり、以前の場所にギャップができます。

これは、画面からスクロールアウトするか、デバイスを回転させると修正されますが、発生を停止する方法がわかりません。

編集:

逆に試してみて、コレクションビューの上のビューのサイズを大きくしました。これで、セルが縮小してヘッダーが固定されたままになると、セルが下に移動します。

セルはビューの上部を基準にして配置され、ヘッダーはビューの表示部分の下部を基準にして配置されているように見えますが、これは少し奇妙です。

4

1 に答える 1

0

私が思いついた答えは次のいずれかでした。

invalidateLayoutcollectionViewLayoutに送信する何らかの方法を見つける

また

collectionViewFlowLayout (私が使用していたレイアウト タイプ) のサブクラスを作成します。

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
{
  return YES;
}

しかし、これはサイズ変更アニメーションに含まれてしまい、ストーリーボードからすべてのセルとヘッダーのサイズなどをコピーするのにもっと多くの作業が必要になるようです。

于 2013-04-03T12:58:51.357 に答える