我正在制作一个具有固定高度和宽度以及水平滚动方向的集合视图。
一开始我将有1个单元格,我希望它在集合视图的右侧而不是左侧,当更多的单元格到来时,我希望它们在前一个单元格的右侧堆叠,如1 - 2 - 3.
我搜索了一个答案,但所有类似的问题都是针对目标c。
有任何想法我怎么能用swift做到这一点?
提前致谢。
答案 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
}
}