iOS 13中的UITabBar透明标签错误

iOS 13中的UITabBar透明标签错误,ios,swift,ios13,xcode11,Ios,Swift,Ios13,Xcode11,iOS:13.1.2 Xcode:11.1(11A1027) 在我们的选项卡栏中,我们选择使用透明文本作为选项卡项,因此在iPhone中,我们只显示选项卡项图像,而文本是不可见的(并且应该只在iPad上可见),我们通过调用: 扩展名uitabaritem{ func updateTitleVisibility(对于traitCollection:UITraitCollection){ 交换机traitCollection.horizontalSizeClass{ 案例.紧凑型: hideTabB

iOS:13.1.2 Xcode:11.1(11A1027)

在我们的选项卡栏中,我们选择使用透明文本作为选项卡项,因此在iPhone中,我们只显示选项卡项图像,而文本是不可见的(并且应该只在iPad上可见),我们通过调用:

扩展名uitabaritem{ func updateTitleVisibility(对于traitCollection:UITraitCollection){ 交换机traitCollection.horizontalSizeClass{ 案例.紧凑型: hideTabBarTitle() 违约: showtabartitle() } } func hideTabBarTitle(){ imageInsets=UIEdgeInsets(顶部:6,左侧:0,底部:-6,右侧:0) setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.clear],用于:。正常) setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.clear],用于:。已选定) } func showtabertitle(){ imageInsets=.0 setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.甘草],用于:。正常) setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.secondaryBlue],用于:。已选定) } } 在为iOS 13编译我们的应用程序时(在iOS 12上没有),出现了一个奇怪的行为(请注意选项卡栏):

(^我没能将它嵌入到帖子中)

因此,在显示全屏视图控制器后,非活动选项卡的选项卡文本突然显示,但在检查视图调试器时,令人难以置信的是,应该是透明的标签实际上是透明的


有人见过这样的行为吗?我如何修复它呢?

好吧,这是由于iOS 13默认暗模式下的行为

要在低于13的iOS版本上使用标签实现您想要的功能

只需将其添加到您的Info.plist中:

<key>UIUserInterfaceStyle</key>
<string>Light</string>

或者您选择的任何其他色调。

我应该提到这一点,但由于我们的应用程序还不支持暗模式,我在您提到的信息列表中添加了强制亮模式设置,但这种行为仍然存在。奇怪的是,从不显示标签到显示标签(如视频所示),您是否替换了整个选项卡栏或类似的东西?这很奇怪,因为前两个选项卡按预期工作,然后突然它们不工作了。只是为了尝试,我将行
tabBar.unselectedItemTintColor=.bgPrimary
添加到我的选项卡栏控制器中,错误不再出现。我不清楚为什么,但这确实有效。
tabBar.unselectedItemTintColor = .darkGray