如何在 SwiftUI 或无限列表视图中实现列表分页?

2023-12-08

我需要有关如何在 SwiftUI 中实现无限列表滚动或分页列表的帮助。提前致谢


你最好的选择是使用.onAppear并计算是否该获取下一页。这是一个人为的示例,因为通常您访问的网络或磁盘比这慢得多,但它会给您一个想法。调getNextPageIfNecessary(_:)针对您的特定用例。

@State var rows: [String] = Array(repeating: "Item", count: 20)

var body: some View {

    List(0..<rows.count, id: \.self) { index in
        Text(verbatim: self.rows[index])
            .onAppear {
                self.getNextPageIfNecessary(encounteredIndex: index)
            }
    }
}

private func getNextPageIfNecessary(encounteredIndex: Int) {
    guard encounteredIndex == rows.count - 1 else { return }

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

如何在 SwiftUI 或无限列表视图中实现列表分页? 的相关文章

随机推荐

  • 忽略 pandas 数据框中字符串的总和[重复]

    这个问题在这里已经有答案了 我正在使用 Pandas 来制作 DataFrame 然而 DataFrame 的某些部分包含一个字符串 当沿数据框的行求和时 如何忽略求和中的这些字符串 df sum df sum axis 1 Use the
  • 有没有办法使用 python 的“match”语句来测试 Iterable 是否包含模式?

    这与新的 Python 3 10 beta 和新的match句法 有没有什么方法可以检查模式是否简单地包含在可迭代中 最明显的解决方案是简单地在两侧放置两个通配符 但这会引发SyntaxError由于解包语法来自可迭代解包 有没有可能的方法
  • Visual Studio 2010 调试 ASP .NET MVC 2 应用程序速度很慢

    在我看来 从 Visual Studio 2010 启动的 Asp NET MVC 2 应用程序是该死的 刷新或打开新页面需要 2 5 秒 你有同样的问题吗 您知道 ASP NET MVC 2 调试模式是否可以以某种方式加速吗 我使用 64
  • 通过 AJAX 请求的资源可以使用基于 PHP 的脚本进行代理吗?

    我想知道基于 PHP 的代理是否可以处理 AJAX 数据 我正在尝试制作一个或使用现成的脚本 Thanks Yes 您的客户端 JavaScript 可以向同域服务器端脚本 例如本例中的 PHP 发出 AJAX 请求 然后 PHP 脚本可以
  • 使用 Jquery colorbox 和通过 Aspx 读取的动态图像时出现问题

    为了在我的网站上显示全尺寸图像 我决定使用 Jquery colorbox 此插件适用于静态图像位置 例如 a href http www blah com image jpg img src http www blah com image
  • 在 C# 中读取/写入文本文件进度条

    我有一个函数可以读取一个大文本文件 分割一部分 从给定的开始和结束 并将分割的数据保存到另一个文本文件中 由于文件太大 我需要在读取流时添加进度条另一个是在将分割的文本写入另一个文件时 Ps start 和 end 给出了日期时间 usin
  • Android - 为乒乓球游戏创建计时器循环

    我有一个Pong我用 Java 编写的游戏 我正在尝试将其移植到 Android 上 这是我的第一个 Android 游戏 在Java中我使用了Timer对象基本上更新了游戏值 球 球拍位置 然后重新绘制屏幕 我正在尝试在 Android
  • Android 日历重复事件的结束日期/时间错误

    这是我的代码 用于查看从 ListActivity 中选择的事件 events是包含所有这些事件的 ArrayList Uri viewUri Uri parse content com android calendar events ev
  • 错误 - 输入最多 1 个参数,但得到 3 个

    我设置了以下 for 循环来接受 5 个测试分数 我希望循环提示用户输入 5 个不同的分数 现在 我可以通过编写输入 请输入您的下一个测试分数 来做到这一点 但我宁愿让每个输入的分数提示其关联的数字 因此 对于第一个输入 我希望它显示 请输
  • 计算属性和闭包属性集之间的区别

    我是斯威夫特的新手 计算属性和设置为闭包的属性有什么区别 我知道计算属性每次都会重新计算 关闭时有什么不同吗 IE Closure var pushBehavior UIPushBehavior let lazilyCreatedPush
  • 如何在 C# 中创建上下文菜单

    我想使用 C 创建一个上下文菜单 该菜单将显示在节点旁边 类似于 Visual Studio 中发生的情况 我现在的代码导致主窗体闪烁 private void treeView1 MouseDown object sender Mouse
  • 将(长尾数)和(sbyte 指数)转换为十进制

    upd将我的版本放在最后的描述中 我需要将尾数和指数转换为十进制 这就是我的编码方式 long field Decimal Mantissa sbyte field Decimal Exponent decimal MDEntryPx fi
  • 如何获取当前视图 HTML 源并将其作为字符串传递 JSF ManagedBean

    我想获取当前视图 HTML 源并将其作为参数传递给 JSF 托管 bean 无论如何 JSF 我可以做到这一点吗 您无法在 JSF 中执行此操作 因为它根本不在 Web 浏览器中运行 最好的选择是使用 JavaScript 下面的示例在单击
  • 三星 Galaxy 蓝牙驱动程序

    我已经为 Android 编写了一个应用程序 主要部分是它通过蓝牙进行通信 我有四台设备 1 三星Galaxy S22 三星Galaxy Gio3 Netsurfer touch 南非本地生产的低端安卓平板电脑 4 摩托罗拉 ET1 现在我
  • 在 Angular 2 中调用组件刷新

    我正在尝试实现一个导航栏 根据用户是否登录显示不同的链接 我正在使用angular2 jwt图书馆提供了tokenNotExpired 功能 我有2条路线 home and login 我有一个导航栏组件 位于
  • 在 ClearCase UCM 中创建的两个基线

    我正在使用复合基线设置一个项目 当我创建发送到 主线 项目的基线时 它总是创建两个基线 一个称为 COMP BL 另一个称为 COMP BL 发生这种情况有原因吗 我的设置可能有问题吗 不 你的设置是正确的 它将始终按已更改的组件创建一个基
  • 同一行上多次按位移位导致的意外行为[重复]

    这个问题在这里已经有答案了 根据我是否将多个按位移位组合在一行上或将它们放在单独的行上 我会得到不同的结果 unsigned char a 73 a a lt lt 6 gt gt 2 printf d n a 当我期望 16 时打印 14
  • 通过用户脚本删除网站标题的一部分

    我尝试编写一个用户脚本这会删除网站标题 Flash 浏览器游戏 中的所有内容 但会删除开始操作时出现的倒计时 我是 Javascript 新手 需要一些帮助 UPDATE 正则表达式问题已解决 但我仍然需要一些帮助来让此脚本 监视 标题 以
  • 如何发出产生与 Firefox 相同的响应标头的 cURL 请求

    当我使用 Firefox 浏览页面并单击下载链接时 在网络检查器中检查请求时会显示以下标头 Connection keep alive Content Disposition attachment filename example file
  • 如何在 SwiftUI 或无限列表视图中实现列表分页?

    我需要有关如何在 SwiftUI 中实现无限列表滚动或分页列表的帮助 提前致谢 你最好的选择是使用 onAppear并计算是否该获取下一页 这是一个人为的示例 因为通常您访问的网络或磁盘比这慢得多 但它会给您一个想法 调getNextPag