我是iOS新手。
我在tableview单元格中有我的收藏视图。 集合视图单元格中有3个单元格。
我需要在屏幕中央显示集合视图的第二个单元格,如图所示,并且还想在其中添加分页。 任何帮助将不胜感激。 Image 谢谢
答案 0 :(得分:0)
几个月前,我不得不做一个类似的集合视图,这是我使用的代码:
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
let layout = theNameOfYourCollectionView.collectionViewLayout as! UICollectionViewFlowLayout
let cellWidthIncludingSpacing = layout.itemSize.width + layout.minimumLineSpacing // Calculate cell size
let offset = scrollView.contentOffset.x
let index = (offset + scrollView.contentInset.left) / cellWidthIncludingSpacing // Calculate the cell need to be center
if velocity.x > 0 { // Scroll to -->
targetContentOffset.pointee = CGPoint(x: ceil(index) * cellWidthIncludingSpacing - scrollView.contentInset.right, y: -scrollView.contentInset.top)
} else if velocity.x < 0 { // Scroll to <---
targetContentOffset.pointee = CGPoint(x: floor(index) * cellWidthIncludingSpacing - scrollView.contentInset.left, y: -scrollView.contentInset.top)
} else if velocity.x == 0 { // No dragging
targetContentOffset.pointee = CGPoint(x: round(index) * cellWidthIncludingSpacing - scrollView.contentInset.left, y: -scrollView.contentInset.top)
}
}
此代码计算单元格的大小,已经显示了多少个单元格,滚动完成后,对其进行调整以使单元格居中。
如果要使用此代码,请确保在pagingEnabled
中具有collectionView的false
。
还要在您的UIScrollViewDelegate
中实现ViewController