如何在集合视图中设置项目使用swift进行自下而上

时间:2017-05-04 09:47:03

标签: ios swift swift3 uicollectionview

我正在制作一个具有固定高度和宽度以及水平滚动方向的集合视图。

一开始我将有1个单元格,我希望它在集合视图的右侧而不是左侧,当更多的单元格到来时,我希望它们在前一个单元格的右侧堆叠,如1 - 2 - 3.

我搜索了一个答案,但所有类似的问题都是针对目标c。

有任何想法我怎么能用swift做到这一点?

提前致谢。

1 个答案:

答案 0 :(得分:2)

问题是,如果您尝试在viewWillAppear中设置集合视图的contentOffset,则集合视图尚未呈现其项目。因此,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
      }

 }