是否可以将导航栏分为两部分,或者需要添加任何自定义视图,在导航栏中添加两种颜色,如下所示-
如果我在下面输入代码-
它不仅应用于左上角,还应用于整个导航栏。
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: "triangle"),for:.default)
答案 0 :(得分:2)
好的,请事先设计您的双色图像或用代码绘制它,然后调用setBackgroundImage(_:for:barMetrics:)
。
https://developer.apple.com/documentation/uikit/uinavigationbar/1624968-setbackgroundimage
答案 1 :(得分:0)
您可以先使用快速代码绘制所需的渐变(或两种不同的非渐变颜色)图像,然后将其设置为页眉。
使用图像渲染器创建图像
使用image(actions:)
方法通过图像渲染器创建图像(UIImage
对象)。
https://developer.apple.com/documentation/uikit/uigraphicsimagerenderer
https://developer.apple.com/library/archive/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/BezierPaths/BezierPaths.html
https://stackoverflow.com/a/30761714/8238512
要将创建的图像设置在您已经知道的上方
使用上面生成的image
来设置navigationBar
self.navigationController?.navigationBar.setBackgroundImage(< *useAboveGeneratedImage* >),for:.default)
答案 2 :(得分:0)
我建议创建一个自定义导航栏。制作一个UIView并为后退按钮,汉堡菜单(如果需要)添加一些委托。
答案 3 :(得分:0)
您必须像这样更改导航栏的背景图像:
if condition {
navigationController?.navigationBar.setBackgroundImage(#imageLiteral(resourceName: "bg1"), for: .default)
} else {
navigationController?.navigationBar.setBackgroundImage(#imageLiteral(resourceName: "bg2"), for: .default)
}
结果是:
请记住:
imageView
并为其设置颜色。 (一个用于左部分,一个用于右部分)。并隐藏导航栏背景图像。所以错觉看起来一样。