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:两个并排列表和一个导航视图出现意外行为 的相关文章

  • 先下载数据,然后在TableViewcontroller上显示

    我有 tableviewcontroller 和从服务器获取的数据 我使用以下类来下载异步数据 但我的问题是当用户看到 tableViewcontroller 时正在加载数据 我希望在用户看到之前加载数据 import
  • 使用 ARKit 加载的 3D 文件有大小限制吗?

    我正在使用 ARKit 开发一个增强现实应用程序 我们需要在其中加载一组建筑物的 3D 模型 我计划是检测水平面并将物体放置在那里 3D 模型或检测到的平面尺寸有尺寸限制吗 如果您谈论的是文件的物理大小 我应该说每个模型的多边形数量比以 M
  • 如何在不使用 Cocos2D 的情况下将声音实现到现有应用程序中

    例如 iOS SDK下载页面上有示例代码 我正在使用计算器应用程序 iPhoneUnitTests 我想知道是否可以轻松地向已构建的应用程序上的按钮添加声音 播放短声音 例如按钮声音 实际上非常简单 这是一个简单的例子 您必须链接 Audi
  • xcode 5.1 中的 ios 6.0 模拟器

    我刚刚成功将 Xcode 工具更新到 5 1 版本 当我检查首选项部分中的 下载 选项时 我注意到没有下载 ios 6 0 模拟器的选项 请检查附图 那么如何在Xcode 5 1中访问ios 6 0模拟器呢 请按照此程序升级您的 xCode
  • didChangeCameraPosition 获取可用坐标的边界框/矩形

    如何从 GMSCameraPosition 检索 GMSColinedBounds 我想知道每次用户移动相机时地图上的可见坐标 至少东北 西南点 如下所示 void mapView GMSMapView mapView didChangeC
  • 填充 UIScrollView 的垂直空间

    我正在研究一个具有UIScrollView 我想要做的是将标签固定在可滚动区域的顶部 并将按钮固定在底部 两者之间的空间最小 这个想法是 如果标签的高度增加 按钮将被向下推 以便用户必须向下滚动才能找到它 但是 如果标签很短 则标签和按钮之
  • 将文件上传到 Google 云端硬盘时出错

    我已经在我的应用程序项目中实现了 Google Drive SDK 并尝试在 Google Drive 中上传图像 但出现错误 我的代码来自Here https developers google com drive quickstart
  • 搜索栏与节标题视图重叠

    我将搜索栏放在 tableHeaderView 内 在 iphone 6 上一切正常 但在 iphone 5s 上我得到这个奇怪的结果 override func viewDidLoad super viewDidLoad tableVie
  • iOS 5 中的新错误:WebKit 丢弃了未捕获的异常

    我正在尝试加载一个UIWebView与 Facebook OAuth 授权 URL 我使用以下代码 当我的UIWebView加载 Facebook 登录页面 我输入我的凭据 然后按 登录 按钮 当我点击按钮时 我收到以下错误 WebKit
  • React Native 图像选择器图像上传在 iOS 上不起作用

    我在通过 fetch 和 react native image picker 将图像上传到 Multer 和 Express 后端时遇到问题 下面是我的 React Native 代码 try const data new FormData
  • @interface 中的 Objective-c 特定 iOS 版本

    我正在尝试实现Apple Pay 并且我尝试实现两种方法 一种用于iOS10 一种用于iOS11 所以在我的实现中我有 void paymentAuthorizationViewController PKPaymentAuthorizati
  • 自定义过渡动画在animationControllerForPresentedController和animateTransition之间未知延迟

    我的目标是使动画在第一个视图控制器中开始并在第二个视图控制器中结束 我正在尝试使用符合以下条件的对象进行过渡动画UIViewControllerAnimatedTransitioning and UIViewControllerTransi
  • 如果在系统设置中关闭隐藏式字幕,则不会显示字幕

    我正在尝试显示字幕 无论设备在辅助功能下设置了什么 目前 如果设备设置为英语并在设置中启用隐藏式字幕 则将播放英语字幕 如果设备设置为西班牙语 则将播放西班牙语字幕 我希望无论隐藏式字幕是否打开 都能播放字幕 我尝试添加这段代码 https
  • 使用 CMake 在 iOS 中使用另一个 STATIC 库创建一个 STATIC 库

    我有一个 libfooi a 的集合 libfoo1 a libfoo2 a libfoo3 a 使用工厂 带有静态代码 有一个公共接口来创建 C 对象 使用 CMake 我选择其中之一 并创建一个链接它并添加所有内容的 libfooWra
  • 无法创建本机类型“NSObject”的实例

    我在执行下面的代码时遇到此错误 未能创建本机类型的实例 NSObject 可以通过将 Class ThrowOnInitFailure 设置为 false 来忽略此情况 var alert new UIAlertView Error Som
  • iOS:如何定义公共方法?

    如何在每个视图控制器类中定义一个可以从任何地方调用的方法 我有一个方法可以为我带来一个 json 文件 并且我希望它可以重用 因为我的应用程序上有多个 json 调用 你能帮助我吗 您可以通过类别添加它 EDIT 创建一个新的 h m 文件
  • phonegap:基于 cookie 的身份验证 (PHP) 不起作用 [webview]

    我正在开发一个移动网络应用程序 使用 sencha touch HTML5 和 Phonegap 作为包装器 我正在使用 PHP 身份验证 Cookie 和 ajax 请求 在 safari 或 chrome 上一切正常 但在使用phone
  • 更改 UIActionSheet 标题字符串的字体类型和大小

    我有一个带有标题字符串 DO 这些任务 的 UIActionSheet 在标题字符串中 子字符串 DO 应为粗体 具有特定字体大小 子字符串 这些任务 应为常规 是否可以 我怎样才能做到这一点 我假设你有一个类实现了UIActionShee
  • 快速从 RSS feed 获取 img url

    我希望能够从一段字符串中检索 img url 以下是我尝试检索的 img URL 的示例 p img width 357 height 500 src http images sgcafe net 2015 05 OVA1 357x500
  • SwiftUI 切换开关

    我正在尝试实现一个简单的切换开关 但在保存新的切换 开关状态时遇到问题 因为当我更改视图并返回设置时 它默认返回到关闭开关 你能告诉我我做错了什么吗 struct StudyMode View State private var overd

随机推荐

  • 无法从下载的 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 展示了正在发生的事情 这是我用于此视图的