SwiftUI:两个并排列表和一个导航视图出现意外行为

2024-04-08

我的屏幕有两个List并排,在一个NavigationView。布局渲染正确,我可以独立滚动两个列表。问题是,当我滚动第一个列表时,它位于导航栏后面,而没有触发对其应用背景颜色的效果。下面的 gif 展示了正在发生的事情:

这是我用于此视图的代码:

struct ContentView: View {

    var body: some View {
        NavigationView {
            HStack(spacing: 0) {
                List {
                    Section(header: Text("Header left")) {
                        ForEach(0..<600) { integer in
                            Text("\(integer)")
                        }
                    }
                }
                .listStyle(InsetGroupedListStyle())
                .frame(minWidth: 0, maxWidth: .infinity)

                List {
                    Section(header: Text("Header right")) {
                        ForEach(0..<400) { integer in
                            Text("\(integer)")
                        }
                    }
                }
                .listStyle(InsetGroupedListStyle())
                .frame(minWidth: 0, maxWidth: .infinity)
            }
            .navigationTitle("Example")
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }

}

这会是 SwiftUI 的错误吗?如果没有,如何使第一个列表在滚动时与导航栏正确交互?


这是一个错误。方式NavigationView and NavigationStack工作时,他们只考虑最后发生的List or ScrollView在其内容中为导航栏设置动画。

我现在能想到的唯一解决方法是:

  1. 隐藏导航栏.navigationBarHidden(true) or .toolbar(.hidden)(适用于 iOS 16+)修饰符
  2. 将导航栏固定到位
.navigationBarTitleDisplayMode(.inline)
.toolbarBackground(Color.white, for: .navigationBar)
.toolbarBackground(.visible, for: .navigationBar)

对于 iOS 16+ 或通过使用旧版 iOS 版本的 UIKit 方式UINavigationBarAppearance

  1. 实现您自己的导航栏,使用几何阅读器跟踪列表,并根据列表位置制作动画,但这里的努力是不值得的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftUI:两个并排列表和一个导航视图出现意外行为 的相关文章

  • 如何无限地每1分钟运行一个iOS应用程序?

    我制作了一个应用程序 需要每 1 分钟向服务器发送一次位置和状态更新 我尝试了以下方法 但没有一个能帮助我 有什么解决办法吗 1 NSTimer 很多人建议这样做 但问题出在后台模式上 它只能工作 20 分钟 该应用程序停止发送数据后 2
  • Swift 包管理器:“多个目标名为...”

    我正在尝试构建一个服务器端 Swift Web 应用程序 我的应用程序的基础框架将是Kitura https www kitura io来自IBM 此外 我还想利用AWS SDK Swift https github com noppoMa
  • 无法安装企业应用程序 - 此配置文件无法安装在此设备上

    我正在设置 Jenkins 来构建应用程序的企业版本 以便在我们的内部应用程序商店中分发 如果我将应用程序存档在 Xcode 中 然后在手机上下载内置的 ipa 则应用程序安装不会出现任何问题 但是当我使用 Jenkins 生成的具有相同私
  • 检查系统时间是自动还是用户设置

    我需要在当前的项目中设置用户证明时间 我围绕这个问题发现了很多不同的问题 但似乎没有一个问题有我正在寻找的答案 这些是我到目前为止看过的问题 XCODE 如何从设备获取 验证准确的时间戳 https stackoverflow com qu
  • 仅在 iPhone X 上显示状态栏

    如果不是 iPhone X 则希望隐藏状态栏 如果是 iPhone X 则希望显示状态栏 这很可能必须以编程方式完成 因为 plist 中没有支持此功能的键 我发现的最接近的一个是UIStatusBarHidden 方法一 You have
  • CMSampleBufferSetDataBufferFromAudioBufferList 返回错误 12731

    我正在尝试捕获应用程序声音并将其传递给 AVAssetWriter 作为输入 我正在设置音频单元的回调以获取 AudioBufferList 问题始于将 AudioBufferList 转换为 CMSampleBufferRef 它总是返回
  • iOS:将观察者添加到 UIView 的frame.origin.y?

    我正在尝试监视 UIView 框架原点的变化值并对其做出反应 我的代码 cell bottomView addObserver self forKeyPath frame origin options NSKeyValueObserving
  • iOS 解析如何通过 URL 下载文件

    我正在将 parse 用于我的聊天应用程序 当我上传文件时 我保留该 url 并将该 url 发送给其他用户 然后其他用户可以通过该 URL 下载文件 这是我上传文件的代码 void uploadBlob NSData blob fileN
  • 从 iOS 应用程序打开 YouTube 频道的最新 URL 方案是什么 [重复]

    这个问题在这里已经有答案了 我想使用 iPhone 应用程序中的频道打开 Youtube 应用程序 以前我使用以下 URL 方案并且工作正常 youtube 用户 频道名称 但在我将 Youtube 应用程序更新到最新的 2 6 0 后 这
  • Swift:无法为“[UIViewController]”类型的值添加下标?

    我试图弄清楚如何在 Xcode 7 iOS9 上的 Swift 中解决此问题 并且我也遇到此错误 无法为 UIViewController 类型的值添加下标 索引类型为 Int 任何建议表示赞赏 谢谢 My code func indexP
  • 无需 iPhone 6 Plus 即可预览 iOS 应用程序

    我已经在 Yosemite 中使用 iPhone 6 和 Quicktime 完成了 iOS 应用程序预览 视频 但我无法在 iTunes Connect 中为 iPhone 6 上传它 而且我没有 iPhone 6 设备 有没有办法在没有
  • ShareKit + Facebook 身份验证不起作用

    我正在使用 ShareKit 从我正在开发的 PhoneGap 应用程序发布到 Facebook 我在 Facebook 中创建了该应用程序 并在我的项目中安装了该插件 Twitter 工作正常 但当我尝试在 Facebook 上分享时出现
  • 如何获取 UITableView 中的所有单元格

    假设我有一个包含多行的 UITableView 我想在某个时间点将所有 UITableViewCells 作为 NSArray 获取 我努力了 tableView visibleCells 但这种方法有一个问题 我无法拥有当前不在当前屏幕中
  • UITextView:内存使用量巨大

    我在 UITextView 中遇到了内存使用过多的问题 我正在将 50Kb ascii 文本文件加载到 NSString 中 并将其分配给应用程序中空 UITextView 组件的 text 属性 这立即使我的内存占用量增加了 100Mb
  • 如何从 Firebase 同步检索数据?

    我有两个集合 即用户和问题 根据使用 userId 登录的用户 我检索currQuestion价值来自users收藏 基于currQuestion值 我需要检索question来自 Firebase 的文档Questions收藏 我使用下面
  • 由于 2.23 导致 iOS 应用程序被拒绝 - iOS 数据存储指南

    以下是 Apple 关于拒绝的消息 2 23 应用程序必须遵循 iOS 数据存储指南 否则将被拒绝 2 23 详情 在启动和内容下载时 您的应用程序会存储 6 5 MB 这并不意味着 遵守 iOS 数据存储指南 下一步 请验证只有用户使用您
  • iOS 使用 NSColor 与 UIColor?

    有什么区别UIColor and NSColor 什么时候会使用每一种 我碰到NSColor在试图弄清楚的同时UIColor用于 iOS 中的属性字符串 我理解使用UIColor对于 UIKit 等 但我不认为NSColor对于这种事情确实
  • Swift 中的 viewWillLayoutSubviews

    我正在尝试翻译SKScene scene GameScene sceneWithSize skView bounds size 进入 swift 但我收到错误 sceneWithSize 不可用 使用对象构造 SKScene size 我在
  • 快速钥匙串更新只有在第二次尝试时才起作用

    您好 我在更新存储在钥匙串中的登录信息方面遇到了 iOS 钥匙串的一个非常奇怪的问题 因此 如果没有保存的凭据 则正确运行保存函数会保存登录信息 如果登录信息已存在并且用户更新了密码 则更新功能仅正确更新密码 但是 如果登录信息存在并且我尝
  • 进入后台时 Alamofire 请求卡住?

    我正在使用 Alamofire 调用 Web 服务 该服务需要相当长的时间才能加载 如果应用程序进入后台 当我返回应用程序时 我会被加载程序卡住 我想这是因为调用永远不会向我的完成处理程序返回任何内容 我该如何解决这个问题 您可以使用后台抓

随机推荐

  • 无法从下载的 blob 中读取 ulatedStreamBody

    我可以检查内部缓冲区以查看我的文本数据是否存在 我是否正确使用了node js的Stream read 我有一个文本文件作为 blob 存储在 azure 存储上 当我下载 blob 时 我会获得可读流以及有关 blob 的信息 返回数据的
  • 从字符串开头删除 n 个字符

    我想从字符串中删除第一个字符 有没有这样的功能 gt gt gt a BarackObama gt gt gt print myfunction 4 a ckObama gt gt gt b The world is mine gt gt
  • 将文件添加到 CAB 存档的简单示例

    我读了这个post https stackoverflow com questions 3361928 where can i get the cabarc utility关于替换 CABARC 实用程序 微软的帮助涵盖了很多选项here
  • 如果 NSString stringWithContentsOfFile 已被弃用,那么它的替代品是什么?

    我有一些来自 Tuaw 的示例代码 可能是 3 个版本的旧版本 编译器发出警告 表明该方法已被弃用 但我没有看到 SDK 文档中提到这一点 如果不推荐使用 则必须有替代方法或替代方法 有谁知道这个方法的替代品是什么 具体代码是 NSArra
  • Eclipse Kepler 在加载工作台时自动退出并出现错误

    当我启动 Eclipse 时 在启动加载窗口中 eclise 自动退出并出现错误 SESSION 2013 09 05 14 52 04 771 eclipse buildId 4 3 0 I20130605 2000 java versi
  • 使用正则表达式查找包含五个字母 abcde 的单词,每个字母以任意顺序仅出现一次,中间没有中断

    例如 这个词debacle会起作用 因为debac but seabed不起作用 因为 1 在任何可以形成的 5 个字符序列中都没有 c 并且 2 字母 e 出现了两次 再举个例子 feedback会起作用 因为edbac 请记住 解决方案
  • 为什么 Objective-C 没有命名空间?

    为什么 Objective C 没有命名空间 这似乎是一个简单的功能 可以使某些类名更具可读性 AVMutableVideoCompositionLayerInstruction有人吗 并删除类名上愚蠢的字母前缀 这主要是因为向后兼容吗 实
  • 集中式和分布式版本控制系统之间的比较[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何让我的 tkinter 原型系统计算出正确的总价

    我是一名初学者 我正在使用 Tkinter 为 DIY 商店创建一个原型系统 作为我任务的一部分 该应用程序的工作原理是填写一份简单的调查来创建订单 单击 输入数据 按钮后 页面底部应显示您的选择结果 包括总价 我需要一些关于如何编写系统计
  • 使用 serde 序列化时如何按字母顺序对字段进行排序?

    我有一个 API 要求对象的字段按字母顺序排序 因为必须对结构进行哈希处理 在 Java Jackson 中 您可以在序列化器中设置一个标志 MapperFeature SORT PROPERTIES ALPHABETICALLY 我在 S
  • 聚合物全局变量

    我正在开发一个 Polymer 应用程序 它从 RESTful API 中提取数据并使用它来构建界面 我在概念上坚持的一个特定领域是单态模式的实现 描述于http www polymer project org docs polymer p
  • BigQueryTable.InsertRows 间歇性地抛出未找到表 xx

    我们只是删除表 创建表 然后使用插入数据 BigQueryTable table try table dataset GetTable tableName table Delete catch finally table dataset C
  • 如何在 .NET Framework 4.7.1 中使用 Azure KeyVault 覆盖 Web.config 值

    如何在 ASP NET Framework 4 7 1 WebForms 应用程序中实现 Microsoft 的 Azure KeyVault 以覆盖中的值web config使用 KeyVault 中的值 我确实看到参考资料表明我们需要最
  • Youtube iOS 播放器帮助程序库无法正常工作

    我尝试实现 youtube ios player helper 库来在我的应用程序中播放视频 我可以准备好播放器并加载视频 并且可以显示起始缩略图 但是 当我尝试播放视频时 却收到以下错误消息 SendDelegateMessage NSI
  • 通过尾指针添加到链表,无需 3 级间接

    我正在开发一个需要实现链表的项目 在开始这个项目之前 我正在回顾创建链表的经典方法 我意识到过去我一直通过head遍历列表直到到达空指针的指针 我发现没有必要这样做 并以涉及的方式实现它tail指针 但我能想到的唯一方法是涉及三重指针或全局
  • Jquery Multiselect:如何知道选择/取消选择哪个值

    我有多选下拉菜单 每当有选择或取消选择时 我都需要获取该值 我正在使用更改事件 但很难确定选择 取消选择了哪个选项 all options var all multiple each function i selected all i se
  • 如何在 C# 中附加 xml 文件?

    我正在为一个简单进程添加跟踪 以进行审计 我将其构建为 exe 并在调度程序中设置为每 10 分钟运行一次 我想让应用程序将结果输出到 xml 文件中 如果文件存在 则打开并向其追加数据 如果不存在 我想创建一个新的 xml 文件 该文件将
  • C/C++ 中的动态位向量

    我正在寻找一个可以使用的现成的 C 或 C 动态位向量 不幸的是 由于各种原因 我目前无法使用 BoostT 库 std bitvector 看起来很有希望 但它是模板化的 所以我无法动态设置位向量的长度 有人可以建议吗 谢谢 您不必仅仅为
  • 安装SSDT(SQL Server数据工具)时出错

    我在安装 SQL Server Data Tools for Visual Studio 2017 过程中遇到问题 我收到以下错误 已翻译 The requested meta file operation is not supported
  • SwiftUI:两个并排列表和一个导航视图出现意外行为

    我的屏幕有两个List并排 在一个NavigationView 布局渲染正确 我可以独立滚动两个列表 问题是 当我滚动第一个列表时 它位于导航栏后面 而没有触发对其应用背景颜色的效果 下面的 gif 展示了正在发生的事情 这是我用于此视图的