如何在 iOS 13 中使 tabBar 清晰?

Posted

技术标签:

【中文标题】如何在 iOS 13 中使 tabBar 清晰?【英文标题】:How to make tabBar clear in iOS 13? 【发布时间】:2019-09-30 19:40:15 【问题描述】:

我用这段代码让tabBar清晰:

self.tabBarController?.tabBar.backgroundImage = UIImage()
self.tabBarController?.tabBar.shadowImage = UIImage()

但在 ios 13 中,我的代码不起作用。我尝试使用此代码:

if #available(iOS 13, *)  
    let appearance = self.tabBarController?.tabBar.standardAppearance.copy()
    appearance!.backgroundImage = UIImage()
    appearance!.shadowImage = UIImage()
    appearance!.shadowColor = .clear
    self.tabBarController?.tabBar.standardAppearance = appearance!
 else 
    self.tabBarController?.tabBar.backgroundImage = UIImage()
    self.tabBarController?.tabBar.shadowImage = UIImage()

但在这种情况下,我的 tabBar 有白色,不清楚。

【问题讨论】:

向下滚动以讨论 iOS 13 中的新外观 API:***.com/questions/56839374/… @Koen 如果我使用***.com/a/58088270,我会得到相同的结果。白色标签栏。我将.white 更改为.clear 你试过没有backgroundImage 吗? @Koen 是的。我尝试了不同的变体,但它不起作用。为什么? 抱歉,不知道。但也许这会有所帮助:sarunw.com/posts/uinavigationbar-changes-in-ios13。这是关于 UINavgationBar 的 API 更改,但也许其中有一些提示可以帮助您。 【参考方案1】:

对于透明的 tabBar 使用 - configureWithTransparentBackground()

默认 tabBar 使用 - configureWithDefaultBackground()

代码:

if #available(iOS 13, *) 
    let appearance = self.tabBarController?.tabBar.standardAppearance.copy()
    appearance!.configureWithTransparentBackground()
    tabBarController?.tabBar.standardAppearance = appearance!
 else 
    tabBarController?.tabBar.shadowImage = UIImage()
    tabBarController?.tabBar.backgroundImage = UIImage()

【讨论】:

以上是关于如何在 iOS 13 中使 tabBar 清晰?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 TabBar 中删除和重置顶行 - 适用于 iOS 13+

如何在 iOS 13 中隐藏带有动画的标签栏?

如何在 Firefox 和 Internet Explorer 中使 SVG 更清晰

UIViewPropertyAnimator:同时隐藏 TabBar 和 StatusBar (iOS 13)

iOS 13设置 tabbar字体

iOS 13 大型导航栏外观 + Tabbar 图像