2017-12-11 18 views
0

私はUICollectionViewを持っていて、その中の各セルはチャットのようなビューでメッセージを表します。UICollectionViewCellsのジャンプを防止する

------------ 
|----- 
| // This space represents a content offset from the top 
|----- 
A 
B 
C 
D // Each of these is a UICollectionViewCell 
------------ 

これは正常に動作します:私はUICollectionViewと新しいものの下に細胞「スティック」は、このような画面が細胞を押し上げるように、新しいセルが追加されるたびオフセットトップコンテンツを設定します。ただし、8秒後にUICollectionViewの先頭にあるUICollectionViewCellが削除されます。これにより、残りのセルがその場所を埋めるように移動し、次に、失われたセルに対応するためにコンテンツのオフセットを設定し、それらはすべてUICollectionViewの底にくっついているように振る舞います。どのようにしてトップUICollectionViewCellを取り除いても、残りのセルがこのように上下にジャンプしないようにできますか?

答えて

0

contentOffsetプロパティを使用してトップオフセットを操作しないでください。 UICollectionViewでは、contentOffsetcontentSizeなどのすべてのプロパティはUICollectionViewLayoutで管理されています。これはお客様のニーズに合わせてカスタマイズできます。私として、(優先して)2つのオプションがあります。カスタムレイアウトのための

1)ルック(またはあなたが希望チャットのような動作を実現しましょうと思われる)自分で1を実装

2 )コレクションビューの上部にダミーの空のセルを挿入し、新しいセルを削除/追加するたびに、ダミーの高さを管理してレイアウトを無効にするか、呼び出しを無効にしてゴールを達成してください。

0

私はこれを削除して解決しました。 contentOffsetの必要性、および以下のステップを使用します。

  1. UICollectionViewの180度回転を実行しcollectionView.transform = CGAffineTransform(a: 1, b: 0, c: 0, d: -1, tx: 0, ty: 0)

  2. collectionViewの各セルのcontentViewに変換を適用する:collectionViewに使用cell.contentView.transform = collectionView.transform

  3. 逆方向データ配列:myData.reversed()

関連する問題