Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用swift从下至上设置集合视图中的项目_Ios_Swift_Swift3_Uicollectionview - Fatal编程技术网

Ios 如何使用swift从下至上设置集合视图中的项目

Ios 如何使用swift从下至上设置集合视图中的项目,ios,swift,swift3,uicollectionview,Ios,Swift,Swift3,Uicollectionview,我正在制作一个具有固定高度和宽度以及水平滚动方向的集合视图 在开始时,我将有一个单元格,我希望它位于集合视图的右侧,而不是左侧。当更多单元格出现时,我希望它们堆叠在前一个单元格的右侧,如1-2-3 我寻找答案,但所有类似的问题都是针对目标c的 有没有想过我怎么能和斯威夫特一起做 提前感谢。问题是,如果尝试在视图中设置集合视图的contentOffset,则集合视图尚未呈现其项目。因此self.collectionView.contentSize仍然是{0,0}。解决方案是向集合视图的布局询问内容

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

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

我寻找答案,但所有类似的问题都是针对目标c的

有没有想过我怎么能和斯威夫特一起做


提前感谢。

问题是,如果尝试在视图中设置集合视图的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
      }

 }