好吧,伙计们,我有点进退两难,所以我得到了一个 collectionview,我试图找出用户在哪个图像上,所以我决定创建一个等于 collectionviewcontentsize/view.frame 的变量 x 。宽度。好的,然后我做了 if 语句来检查图像是否在图像 0 之上。现在我只是想在编写其他代码之前修复它。我的问题是,当我说 print(x) 时,它在图像最终达到 2 之前打印了 40 次。哦,这个 Collection View 有一个单元格,其中的图像填满了大部分屏幕并且是水平滚动的,启用了分页。所以我想知道是否有人可以帮助我在每张图像的输出中只打印一个数字。这里有一张图很好看问题
所以在该图像中,我只滚动到下一张图像或第一张图像(collectionview 中的第二张图像)(img 1 被认为是 0)。请在评论中提出任何问题或您是否感到困惑。谢谢大家!
最佳答案
您可以设置一个变量来保存当前数字,并仅在数字发生变化时打印该数字。在类的顶部定义变量:
var currentImage = 0
然后在您的 scrollViewDidScroll
中,执行以下操作:
func scrollViewDidScroll(_ scrollView:UIScrollView) {
let x = floor(myCollectionView.contetOffset.x / view.frame.width)
if Int(x) != currentImage {
currentImage = Int(x)
print(currentImage)
}
}
关于ios - swift 中的整数在输出中一次产生一个 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43025552/