本文主要是介绍collectionView 无限轮播图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
拿一组4张的轮播图作为例子
思路主要是
1. 拿到一组图片后, 把绿色图1和绿色图4多复制出来一份, 把红色图1(复制的图1)放在最后, 红色图4(复制的绿色图4)放在首位, 现在一共是6张图.
2. 左滑从绿色图1到红色图1时,就迅速把collectionView的contentoffset
设置到图1的位置.
3.右滑时,到红色图4就把collectionView的frame
设置到绿色图4的位置
// 这里是位移的代码
```
- (void)adjustPicturePosition {// 拿到图片的XCGFloat offsetX = self.collectionView.contentOffset.x;// 计算是第几张图CGFloat offsetItemNum = offsetX / self.collectionView.bounds.size.width;// 红色图1的位置if (offsetItemNum == photocount - 1) {// 设置的绿色图1的位置[self.collectionView setContentOffset:CGPointMake(collectionView.bounds.size.width, 0) animated:NO];} else if (offsetItemNum == 0) {// 红色图4// 设置为绿色图4的位置[self.collectionView setContentOffset:CGPointMake((photocount - 2) * collectionView.bounds.size.width, 0) animated:NO];}// 四舍五入(主要是为了滑动到一半的图片设置pagecontrol) // 拿到当前的图片countNSInteger pageNum = (NSInteger)round(offsetItemNum);// 设置页数if self.pageControl.currentPage = item;
}
```
效果图
这篇关于collectionView 无限轮播图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!