首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >透明TabBar时弹出儿童NavigationView iOS 15

透明TabBar时弹出儿童NavigationView iOS 15
EN

Stack Overflow用户
提问于 2021-10-06 14:24:32
回答 2查看 1.4K关注 0票数 5

我有一个带有SwiftUI的TabBar应用程序。如果我从NavigationView中打开一个详细子视图,然后单击"Back",TabBar就会变得透明,在TabBar图标下面显示Feed中的项目。

从主提要

  1. ,打开子导航详细信息视图。---------------

然后,

  1. 在细节视图中单击“上一步”。---------------

  1. ,您将看到这个BUG。TAB栏将是透明的。---------------

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-06 14:24:32

通过iOS 15,苹果已经将对scrollEdgeAppearance的支持扩展到了UIKit。默认情况下,此设置生成透明的TabBar背景。

要解决这个问题,请将下面的代码添加到SceneDelegate文件中,以定义TabBar的颜色,这样SwiftUI就不会自动使其透明。

代码语言:javascript
复制
class SceneDelegate: UIResponder, UIWindowSceneDelegate {

var window: UIWindow?

func scene(
    _ scene: UIScene,
    willConnectTo session: UISceneSession,
    options connectionOptions: UIScene.ConnectionOptions
) {

    guard let windowScene = (scene as? UIWindowScene) else { return }        

    // MARK: ADD THIS CODE BELOW TO YOUR SCENE DELEGATE.
    
    // TAB BAR BACKGROUND COLOR HERE.
    UITabBar.appearance().barTintColor = UIColor.white
    
    // TAB BAR ICONS COLOR HERE.
    UITabBar.appearance().tintColor = UIColor.blue
    UITabBar.appearance().isTranslucent = true
    
    if #available(iOS 15.0, *) {
        let appearance = UITabBarAppearance()
        appearance.configureWithOpaqueBackground()
        
        // TAB BAR BACKGROUND COLOR HERE. (same as above)
        appearance.backgroundColor = UIColor.white
        UITabBar.appearance().standardAppearance = appearance
        UITabBar.appearance().scrollEdgeAppearance = UITabBar.appearance().standardAppearance
    }
    
    let window = UIWindow(windowScene: windowScene)
    window.rootViewController = UIHostingController(rootView: RootView())
        self.window = window
        window.makeKeyAndVisible()
    }
}
票数 4
EN

Stack Overflow用户

发布于 2022-01-31 04:15:10

这是我所需要做的。

代码语言:javascript
复制
if #available(iOS 15.0, *) {
    let tabBarAppearance = UITabBarAppearance()
    tabBarAppearance.configureWithDefaultBackground()
    UITabBar.appearance().scrollEdgeAppearance = tabBarAppearance
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69467580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档