gpt4 book ai didi

ios - 如何在推送的 View Controller 中的导航栏下方添加一行?

转载 作者:可可西里 更新时间:2023-11-01 00:54:22 26 4
gpt4 key购买 nike

我有一个用于推送或弹出 View 的 UINavigation Controller 。在初始 View Controller 中,我想隐藏导航栏底部 1 个像素的阴影。所以我这里是代码。

func setup(){

if #available(iOS 11.0, *) {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationController?.navigationItem.largeTitleDisplayMode = .always
} else {
// Fallback on earlier versions
}

self.navigationBar.isTranslucent = true


self.navigationBar.clipsToBounds = true
self.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationBar.shadowImage = UIImage()

self.navigationBar.tintColor = UIColor(hexString: "#373839")
self.navigationBar.backgroundColor = UIColor.white

}

但是当我推送到第二个 View Controller 时,导航栏的阴影甚至隐藏在其中。

在父 View Controller 中设置导航栏的属性是否会影响从那里推送的所有 Controller 中的属性?我认为导航栏是特定于 View Controller 的,导航 Controller 会为每个推送的 View 创建一个新的导航栏。

谁能帮助我理解这一点,以及如何让导航栏上的 1 像素阴影仅用于 1 个 View 。

最佳答案

ViewController 中添加以下代码以更改 NavigationBar 的阴影 的颜色。

func addColorToShadow() {

self.navigationController?.navigationBar.clipsToBounds = false
self.navigationController?.navigationBar.shadowImage = UIColor(red: 215/255, green: 215/255, blue: 215/255, alpha: 1.0).image(CGSize(width: self.view.frame.width, height: 1))

}


extension UIColor {
func image(_ size: CGSize = CGSize(width: 1, height: 1)) -> UIImage {
return UIGraphicsImageRenderer(size: size).image { rendererContext in
self.setFill()
rendererContext.fill(CGRect(x: 0, y: 0, width: size.width, height: size.height))
}
}
}

输出

enter image description here

关于ios - 如何在推送的 View Controller 中的导航栏下方添加一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53532014/

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