Swift 4 UICollectionView 检测滚动结束

2023-11-22

我有一个Horizontal UICollectionView在我的应用程序上,当用户在左侧拖动时到达 UICollectionView 的末尾(或接近末尾)时,我想加载更多数据。

我正在使用 Swift 4。我找到了一些 Swift 3 解决方案,但它们对我不起作用。

我当前的代码是:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return self.videoViewModel.images.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CollectionViewCell", for: indexPath) as! CollectionViewCell
    cell.imgImage.image = self.videoViewModel.images[indexPath.row]

    return cell
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    updateVideo(data: self.videoViewModel.relatedVideos[indexPath.row])
}

您可以使用集合视图的 cellForItem 或 willDisplayItem 方法。检查是否显示最后一个单元格,然后加载数据。例如:

Swift:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
     if (indexPath.row == dataSource.count - 1 ) { //it's your last cell
       //Load more data & reload your collection view
     }
}

Objective-C:

- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row == dataSource.count - 1 ) { //it's your last cell
       //Load more data & reload your collection view

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 4 UICollectionView 检测滚动结束 的相关文章

随机推荐

  • 在 WPF 中仅使用 XAML 根据 TextBox 的文本过滤 ListBox 的项目

    我目前有一个绑定到项目集合的列表框 由于集合很大 我们希望根据在文本框中输入的文本来过滤显示的项目 我要问的是 是否可以仅使用 XAML 来实现 我不想修改项目集合 我想根据过滤器修改每个项目的可见性 希望它清楚 thanks 就像 Cod
  • 使用 PowerShell 脚本执行 EXE 文件

    我正在尝试使用 PowerShell 脚本执行 EXE 文件 如果我使用命令行 它可以正常工作 首先我提供可执行文件的名称和一系列参数来调用它 C Program Files Automated QA TestExecute 8 Bin T
  • 为什么 .NET Reactive Extensions 中不推荐使用主题?

    我目前正在掌握 NET 的响应式扩展框架 并且正在研究我找到的各种介绍资源 主要是http www introtorx com 我们的应用程序涉及许多检测网络帧的硬件接口 这些将是我的 IObservables 然后我有各种组件将消耗这些帧
  • 如何在不使用框架集的情况下仅缩放 IFRAME 内容?

    我只需要缩放框架内容 在我的网页中我使用了zoom 0 75 height 520px width 800px 如果我增加缩放值 则意味着帧尺寸将会增加
  • glClear() 如何提高性能?

    Apple 关于解决闪烁问题的技术问答 QA1650 包括以下段落 强调我的 您必须为屏幕上的每个像素提供一种颜色 在绘图代码开始时 最好使用 glClear 来初始化颜色缓冲区 在帧开始时全屏清除每种颜色 深度和模板缓冲区 如果您正在使用
  • SMJobSubmit() 可以用来执行 SMJobBless 安装的特权助手吗?

    我一直在阅读文档和 SMJobBless 示例以及互联网上的各种讨论 我的应用程序现在使用安装特权助手SMJobBless 但助手根本不运行 帮助程序的全部目的是在应用程序启动时加载 kext 这是我的应用程序的重要组件 我看到的例子表明
  • zend 形式的数组输入,如 name="person[]"

    在普通的 html 中 我们可以有一个数组字段 例如person
  • 单个 Prisma 查询中的 LEFT JOINS 和聚合

    我有一个包含多个表的数据库 经常需要查询LEFT JOIN以便结果包含来自其他表的聚合数据 我的 Prisma 架构的片段 model posts id Int id unique default autoincrement user id
  • 使用变量作为格式指令的前缀参数

    我需要打印一些前面有可变数量空格的内容 例如 如果我需要在文本前打印 5 个空格 我会这样做 format T 5T My Text Output My Text 我可以使用变量来代替 5 并能够向其传递值吗 我正在寻找的是这样的 form
  • Twilio React Native - 无法解析模块加密

    我正在努力实施twilio打包到我的反应本机项目中 当我在文件中需要它时 项目将无法加载 并且我看到以下错误 Unable to resolve module crypto from Users myname Documents Proje
  • AWS 和 Terraform - 安全组中的默认出口规则

    我在许多提供者是 AWS 的 Terraform 项目中看到了可重复的配置 配置出站 出口 规则以允许所有出站流量 据我了解 这是 AWS 中的默认行为 如AWS 用户指南 默认情况下 安全组包含允许所有出站流量的出站规则 您可以删除规则并
  • Delphi有没有允许路径编辑的编辑控件?

    我有各种层次结构 并且希望使用编辑器 例如下面的资源管理器地址栏中找到的 Microsoft 编辑器 进行导航 Delphi有这样的组件吗 付费还是免费 TMS 的 TAdvExplorerTreeview 可能就是您所寻找的 http w
  • 如何基于 stanford-nlp 条件随机场模型训练法国 NER?

    我发现了 stanford NLP 的工具 发现它真的很有趣 我是一名法国数据挖掘者 数据科学家 喜欢文本分析 并且很想使用你们的工具 但是 NER 在法语中不可用 这让我很困惑 我很想制作自己的法语 NER 如果认为值得的话 甚至可能将其
  • 我可以从 scala 中的重载方法中获取函数吗?

    假设我定义了两个具有相同名称和返回值但参数不同的方法 def overload x Int x toString def overload s String s 现在我想将其中之一转换为函数 如果该方法没有重载 我会这样做 val f ov
  • 继承自 ObservableCollection 的集合 - 有什么好处?

    看完之后这篇 MSDN 文章 我现在想知道将集合定义为继承自的类有什么好处 如果有的话 ObservableCollection 这之间是否有任何显着差异 class MyCollection ObservableCollection
  • 使用基于 $resource 的服务进行部分更新(又名 PATCH)?

    我们正在使用 Django TastyPie 作为后端 REST 服务提供者构建一个 Web 应用程序 并构建一个基于 AngularJS 的前端 使用大量基于 resource 的服务来对服务器上的 CRUD 对象进行处理 到目前为止一切
  • XSLT 1.0 三元 if 的惯用语?

    该 Java 程序使用三元 if 将布尔值映射到输出字符串 表示 true 空字符串表示 false public class ternary public static void main String args boolean flag
  • Java Socket - 本地端口

    我正在学习 Java 的套接字编程 我使用以下语句连接到网站 s new Socket www nba com 80 当我调试应用程序并查看 s 的内容时 我看到 Socket addr www nba com 2 21 246 97 po
  • 多模块 m2eclipse/WTP 项目能否将实用程序模块部署到 WEB-INF/类中?

    我们目前使用 MyEclipse 及其内置 Maven4MyEclipse 集成和内置 J2EE 服务器支持 但希望转换为常规 Eclipse 特别是 Helios 以便能够在 Windows 上使用其 64 位安装 MyEclipse 尚
  • Swift 4 UICollectionView 检测滚动结束

    我有一个Horizontal UICollectionView在我的应用程序上 当用户在左侧拖动时到达 UICollectionView 的末尾 或接近末尾 时 我想加载更多数据 我正在使用 Swift 4 我找到了一些 Swift 3 解