ios - swift 中的整数在输出中一次产生一个 int

标签 ios swift xcode

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

所以在该图像中,我只滚动到下一张图像或第一张图像(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/

相关文章:

ios - swift 在不同的 UnsafePointer<T> 之间进行转换

ios - 将 iPhone 与 tvOS 交互

swift - 服务器端 Swift 的 LLDB 远程调试在 docker 和 macOS 中的 Linux 之间失败

iphone - 在 iOS 中添加多个 subview 的动画

ios - SwiftUI 导航链接和 ScrollView 问题

ios - 如何将 iPhone X 的全屏图像添加到 xcassets(不是启动图像)?

objective-c - 在 UITableview 上仅重新加载一个 UITableViewCell

swift - 实例成员不能用于类型

ios - 键盘将 UIView 推开

IOS内存和内存管理