我使用的半透明标签栏遇到问题。我有一个UITabBarController嵌入了一个UINavigationController,它的根目录是一个简单的UIViewController。正如我所说的,TabBar是半透明的。
当我尝试在导航控制器堆栈上推一个视图控制器时,转换会被切碎在选项卡栏下。
转换完成后,在半透明选项卡栏下设置推送视图控制器的背景色(红色仅用于此示例)
是的,我可以将tabControllers视图的背景颜色设置为f.I.红色并覆盖黑色,但它仍然会被切掉。
我发现了很多类似的问题,但通常解决方案是“从故事板实例化”,但我不使用故事板,也没有找到任何有效的解决方案
代码没什么特别的,只是简单地推一下导航控制器。
let diningDetailController = DiningDetailController()
navigationController?.pushViewController(diningDetailController, animated: true)
Dining详细控制器:
import UIKit
class DiningDetailController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .red
}
}
你可以在附加的gif中看到它的实际外观,我想你可以想象它应该如何表现。红色视图控制器应该平滑地进入半透明条的后面
如果没有半透明,它当然工作得很好,因为你看不到那该死的吧台后面的东西,但吧台应该是半透明的。
我希望你们都知道这个问题的解决办法。提前谢谢
最佳答案
好吧,我找到问题了。显然,这是一种缓存的构建,我不太清楚,但在gif中,您可以看到,table views bottom约束被捕捉到视图的bottom约束。
为了尝试,我使用了视图底部安全区域布局指南,以便表视图的底部锚定捕捉到选项卡栏的顶部锚定。我建立了它,显然没有问题,因为视图不再在标签栏后面了。
当我将约束改回使用self.view.bottomAnchor
时,它再次工作了,原因我不知道。我三次检查我的git状态,代码库中没有一个字符被更改。
这可能是由某些缓存数据引起的吗?