iOS 15 TabView导航栏透明度问题

2024-03-21

新的 iOS 15 使导航栏背景完全透明,如果后面没有元素,如果有一个列表并且您将元素滚动到导航栏后面,这将获得白色半透明背景,但如果我使用 TabView,其中每个 TabItem 都有一个在选项卡项目之间切换时,导航栏背景内的列表未正确更新,导航栏始终保持透明背景。

我使用 SwiftUI,我的基本代码如下所示:

struct Main: View {
    var body: some View {
        WindowGroup {
            NavigationView {
                TabView {
                    TabElement()
                    TabElement()
                    TabElement()
                    TabElement()
                    TabElement()
                }.navigationBarTitle(Text("Main"), displayMode: .inline).navigationBarBackButtonHidden(true)
            }
        }
    }
}

struct TabElement: View {
    var body: some View {
        VStack {
            List {
               Text("empty")
               Text("empty")
               Text("empty")
               Text("empty")
               Text("empty")
               Text("empty")
               Text("empty")
               Text("empty")
               Text("empty")
               Text("empty")
           }.listStyle(InsetGroupedListStyle())
        }.tabItem {
            Image(systemName: "star.fill")
            Text("dummy")
        }
    }
}

因此,这段代码创建了一个包含五个选项卡的选项卡视图,每个选项卡都有一个包含十个文本视图的列表,如果我切换到任何其他选项卡并将元素滚动到顶部,则可以通过导航栏而不是后面看到该列表。

是什么导致了这种行为?这是某种错误还是我的代码错误?此问题在 iOS 14.* 中不会发生,因为导航栏始终具有白色背景。

NOTE:我发现可以使用:

if #available(iOS 15, *) {
    let appearance = UINavigationBarAppearance()
    appearance.configureWithOpaqueBackground()
    UINavigationBar.appearance().standardAppearance = appearance
    UINavigationBar.appearance().scrollEdgeAppearance = appearance
}

...在我的ApDelegate但这看起来是消除导航栏中透明度的一种棘手方法。如果 Apple 决定在 iOS 15 中使用这种新设计,我想在我的应用程序中实现它,但前提是透明度更新正确。


是的,苹果在 iOS 15 中改变了这一点。
如果你想改变单个ViewController中导航栏的外观,你可以使用以下代码:https://stackoverflow.com/a/69493819/9263676 https://stackoverflow.com/a/69493819/9263676

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

iOS 15 TabView导航栏透明度问题 的相关文章

随机推荐

  • 从另一个 Java 应用程序启动一个 Java 应用程序

    我正在做一个 Java 记录 重放工具 我需要从我的主 Java 应用程序启动 Java 应用程序 我需要访问 EventDispatchThread 以便拦截事件并记录它们 因此我通过反射启动应用程序 简化的代码片段 Class
  • .NET 编译器平台:不工作

    我安装了 Microsoft Visual Studio Enterprise 2017 版本 15 5 5 显然是日期的最新版本 但是 我无法使用 NET Compiler Platform SDK 我曾经将它作为扩展 但现在它无法与警告
  • 根据任意数字出现拆分字符串

    使用正则表达式如何根据数字出现拆分字符串 例如我有一个如下所示的字符串 var text 1 dozen 3 dozen 4 dozen kg 我需要把它分开 预期输出 1 dozen 3 dozen 4 dozen kg 我尝试了以下正则
  • 有没有办法使用 JS 确定何时加载 4 个图像?

    我一页上有 4 张图片 我想在所有 4 个图像加载完毕后触发 JS 事件 我当然无法确定图像将以哪个顺序加载 因此我无法在最后一个图像上触发事件 一个想法是有一个计数器 但我想不出检查该计数器何时等于 4 的最佳方法 因为我不喜欢 setT
  • 我在理解 AVX shuffle 内在函数如何为 8 位工作时遇到一些问题

    我正在尝试使用 mm256 shuffle epi8 将 16 位数据打包为 8 位 但我得到的结果不是我所期望的 auto srcData mm256 setr epi8 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  • 滚动条上的灰点[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Visual Studio 2017 中滚动条上的灰点是什么 代码建议 我遇到的一个场景是忘记利用我的方法 我看到的另一个建议是改进我
  • Google Play 控制台堆栈跟踪

    在 Google Play Console 中 我收到以下异常跟踪 虽然我添加了反混淆文件 但行号显示为 0 java lang NullPointerException at com ae apps common managers Con
  • 将对象移动到地图中

    这样做的问题是巨大的物体将被复制到地图中 Huge huge1 some args Huge huge2 some args std map
  • Python 和 websockets - 发送音频流

    我已经设置了一个套接字服务器并将消息发送到所有连接的客户端 我正在将数据从 python 发送到 javascript 我想将我的麦克风输入发送给所有正在收听的客户 所以在我的 Python 应用程序中我执行以下操作 import pyau
  • (有效)合并随机键控子集

    我有两个data tables 我想从匹配键的元素中随机将一个元素分配给另一个元素 我现在这样做的方式非常慢 让我们具体说一下 这是一些示例数据 dt1 lt data table id sample letters 1 5 500 rep
  • pandas DataFrame 多列的并排箱线图

    一年的样本数据 import pandas as pd import numpy random as rnd import seaborn as sns n 365 df pd DataFrame data A rnd randn n B
  • Chrome 开发者控制台问题

    我正在尝试测试我的网站上产生随机整数的功能 我想知道是否可以使用 chrome 开发者控制台通过代码触发按钮事件 而无需实际按下页面上的按钮 是否可以发送与用户输入文本框中的值不同的值 假设用户将他的名字输入 Tom 有没有办法通过控制台中
  • 尝试注册两个同名的ProgressBarAndroid视图

    将react版本16 0 0与react native版本0 49 1一起使用会引发红屏错误 尝试注册两个具有相同名称的ProgressBarAndroid视图 删除 ProgressBarAndroid 的所有导入和实例会产生运行良好的程
  • scikit learn:未选择所需数量的最佳功能 (k)

    我试图使用卡方 scikit learn 0 10 选择最佳特征 我首先从总共 80 个训练文档中提取 227 个特征 然后从这 227 个特征中选择前 10 个特征 my vectorizer CountVectorizer analyz
  • Hibernate 的泛型

    Hibernate 无法加载以下类 package com project alice entities import javax persistence Entity import javax persistence GeneratedV
  • 设置对话框的最大高度,然后允许滚动

    我似乎无法理解如何正确设置 jquery ui 对话框的高度 我希望它显示存在的内容的高度 但如果它超过 400 像素 那么我需要一个滚动条 因此 如果内容的高度为 200 像素 则对话框的高度应为 200 像素 如果内容的高度大于 400
  • graphviz 中跨越多行的记录

    我试图用点语言可视化一个相当复杂的结构 因为记录很大 所以我想把代码写成多行 所以而不是 A11 label A 11 Access Control A 11 1 Business requirements for access contr
  • Bash 变量替换和字符串

    假设我有两个变量 a AAA b BBB 我从文件中读取了一个字符串 该字符串如下 str a b 如何从替换变量的第一个字符串创建一个新字符串 newstr AAA BBB bash questions tagged bash多变的间接没
  • 使用 libtorrent-python 下载 Torrent

    我有以下 python 代码 import libtorrent as lt import time ses lt session ses listen on 6881 6891 params save path home download
  • iOS 15 TabView导航栏透明度问题

    新的 iOS 15 使导航栏背景完全透明 如果后面没有元素 如果有一个列表并且您将元素滚动到导航栏后面 这将获得白色半透明背景 但如果我使用 TabView 其中每个 TabItem 都有一个在选项卡项目之间切换时 导航栏背景内的列表未正确