swift中的round数,在输出中一次生成一个int

时间:2017-03-26 05:55:20

标签: ios swift xcode

好吧,伙计们,我有点困境,所以我得到了一个收集视图,我试图找到用户所在的图像,所以我决定创建一个等于collectionviewcontentsize / view.frame的变量x 。宽度。好的,然后我做了if if语句检查图像是否在图像0之上。现在我只是想在编写其他代码之前修复它。我的问题是当我说print(x)它在图像最终点击2之前打印1次40次。哦,这个集合视图有一个图像填充大部分屏幕并且是水平滚动的单元格,启用了分页。所以我想知道是否有人可以帮助我在每个图像的输出中只打印一个数字。这是一个很好的图像来查看问题enter image description here

因此在该图像中我只滚动到下一个图像或第一个图像(在集合视图中的第二个)(img 1被认为是0)。请在评论中询问任何问题或者您是否感到困惑。谢谢你们!

1 个答案:

答案 0 :(得分:1)

您可以设置变量以保留当前数字,并仅在数字更改时打印数字。在类的顶部定义变量:

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)
    }
}