我有一个collectionView,我正在用来显示我的入职屏幕。每个单元格都占用了视图的全宽和全高,目前我让它在每个单元格(页面)之间很好地滑动。
我必须实现一个下一个按钮。这个按钮将只是移动collectionView超过1索引每点击一次(直到结束)。我只是想让它移动现在,即使有一些类似的问题,我还没有能够拿出一个解决方案,到目前为止。
这是我试过的
@IBAction func nextPageButtonClicked(_ sender: AnyObject) {
let visibleItems: NSArray = self.collectionView.indexPathsForVisibleItems as NSArray
let currentItem: NSIndexPath = visibleItems.object(at: 0) as! NSIndexPath
let nextItem: NSIndexPath = NSIndexPath(row: currentItem + 1, section: 0)
self.collectionView.scrollToItem(at: nextItem as IndexPath, at: .left, animated: true)
}
在第4行(currentItem + 1)执行二元运算符时出现错误,但即使我硬编码数字并尝试运行它,滚动条仍然无法正常工作
6条答案
按热度按时间pkmbmrz71#
请尝试这些方法来向左和向右递增集合单元格
对于右增量
对于左侧增量
zc0qhyus2#
您正在尝试递增indexPath,必须递增indexPath的行。
m1m5dgzv3#
步骤:
1.查找"visibleItems"变量中的所有可见项目
1.查找可见项目中存在的最小项目
1.转到下一个项目
1.滚动至所需项目。
注:即使在集合视图中存在多个项目的情况下,此操作也有效,如果我们希望移动多个项目,则单击按钮时,我们希望多"一个"项目可见,将"1"更改为所需值。
wrrgggsh4#
iOS14上的collectionView.scrollToItem函数有问题。所以你可以试试这个
这是你的按钮动作
4urapxun5#
对于didTapBack,您只需要当前页,但在didTapForward中,如果currentPage未到达yourArray的最后一个索引,则还需要检查currentPage
以确保您没有到达最后一个索引
tvz2xvvm6#
对于我使用的ios 14,上述解决方案不能正常工作.所以这里是解决方案.
用法: