gpt4 book ai didi

ios - 如何在导航栏顶部添加 View

转载 作者:行者123 更新时间:2023-11-28 13:42:50 30 4
gpt4 key购买 nike

如何在导航栏上方添加 View ?我有一个自定义导航 Controller ,我想在导航栏上方显示一个 View (就像在屏幕上一样),因此它应该在其他 ViewController 上可见

如果解决方案出现在故事​​板上,那就太好了。 Like that

尝试在 UIWindow 上添加没有帮助。

最佳答案

swift 4.2,Xcode 10+

好的,据我所知(通过您的评论回复,尽管它仍然不是 100% 清楚),解决您的问题的最佳方法是使导航栏透明,这样您就可以看到任何 navigationController-在其下方呈现 View Controller 。为此,我建议对 UIViewController 进行以下扩展:

extension UIViewController {    
func setupTransparentNavigationBarWithBlackText() {
setupTransparentNavigationBar()
//Status bar text and back(item) tint to black
self.navigationController?.navigationBar.barStyle = .default
self.navigationController?.navigationBar.tintColor = .black
}

func setupTransparentNavigationBarWithWhiteText() {
setupTransparentNavigationBar()
//Status bar text and back(item) tint to white
self.navigationController?.navigationBar.barStyle = .blackTranslucent
self.navigationController?.navigationBar.tintColor = .white
}

func setupTransparentNavigationBar() {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.backgroundColor = .clear
self.navigationController?.navigationBar.isTranslucent = true
}
}

UIViewController 子类的 viewWillAppear 中使用前两种方法中的任何一种都可以使导航栏完全透明,statusBar 文本 + wifi/电池指示器为黑色或根据需要白色。由此,您可以通过将约束固定到 view.bounds.topAnchor 来显示导航栏的任何内容。例如。对于带有白色 statusBar 文本的透明导航 Controller :

class YourViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
setupTransparentNavigationBarWithWhiteText()
}
}

关于ios - 如何在导航栏顶部添加 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828526/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com