iOS swift 如何使集合视图水平滚动,向左和向右两个方向无限滚动
how to make a collection view to scroll horizontally having infinite scroll in both directions left, as well as right in iOS swift
我想要一个水平滚动的collection view,可以左右滚动,现在它只能在右方向连续滚动,如何在左侧实现?
let itemcount = array?.count ?? 0
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView == DemoCollectionView {
let offSet = scrollView.contentOffset.x
let width = scrollView.frame.width
let horizontalCenter = width / 2
let currentPage = Int(offSet + horizontalCenter) / Int(width)
if currentPage >= itemCount / 2 {
itemCount += array?.count ?? 0
DemoCollectionView.reloadData()
}
}
}
您可以使用“scrollToItemAtIndexPath”方法来完成。您可以从滚动视图委托方法中获得的滑动方向。
从右向左滚动
collectionView?.scrollToItemAtIndexPath(NSIndexPath(forItem: dataArray.count - 1, inSection: 0), atScrollPosition: .Right, animated: false)
从左向右滚动
collectionView?.scrollToItemAtIndexPath(NSIndexPath(forItem: 0, inSection: 0), atScrollPosition: .left, animated: false)
您还可以对集合视图应用转换以获得类似效果。
我想要一个水平滚动的collection view,可以左右滚动,现在它只能在右方向连续滚动,如何在左侧实现?
let itemcount = array?.count ?? 0
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView == DemoCollectionView {
let offSet = scrollView.contentOffset.x
let width = scrollView.frame.width
let horizontalCenter = width / 2
let currentPage = Int(offSet + horizontalCenter) / Int(width)
if currentPage >= itemCount / 2 {
itemCount += array?.count ?? 0
DemoCollectionView.reloadData()
}
}
}
您可以使用“scrollToItemAtIndexPath”方法来完成。您可以从滚动视图委托方法中获得的滑动方向。
从右向左滚动
collectionView?.scrollToItemAtIndexPath(NSIndexPath(forItem: dataArray.count - 1, inSection: 0), atScrollPosition: .Right, animated: false)
从左向右滚动
collectionView?.scrollToItemAtIndexPath(NSIndexPath(forItem: 0, inSection: 0), atScrollPosition: .left, animated: false)
您还可以对集合视图应用转换以获得类似效果。