2017-05-04 7 views
2

固定高さと幅、および水平スクロール方向のコレクションビューを作成しています。コレクションビューで項目を設定する方法スウィフトで下から上に移動

開始時に1つのセルがあり、コレクションビューの左側の代わりに右側に表示したい場合や、より多くのセルが来ているときに、それらを前のセルの右側に1〜 2 - 3

私は答えを探しましたが、同様の質問はすべて客観的なものでした。

どのように私は迅速にこれを行うことができますか?

ありがとうございます。

答えて

0

問題は、コレクションビューのcontentOffsetをviewWillAppearに設定しようとすると、コレクションビューがそのアイテムをまだレンダリングしていないことです。したがって、self.collectionView.contentSizeはまだ{0,0}です。解決策は、コレクションビューのレイアウトにコンテンツサイズを尋ねることです。

また、contentSizeがコレクションビューの境界よりも大きい場合は、contentOffsetを設定する必要があります。

func viewWillAppear(_ animated: Bool) { 
super.viewWillAppear(animated) 

let contentSize: CGSize? = collectionView?.collectionViewLayout.collectionViewContentSize 
    if contentSize?.height > collectionView?.bounds.size.height { 

     let targetContentOffset = CGPoint(x: 0.0, y: (contentSize?.height)! - (collectionView?.bounds.size.height)!) 
     collectionView?.contentOffset = targetContentOffset 
     } 

} 
関連する問題