在导航栏中添加UIView

问题描述:

我想创建带圆角的UINavigationBar。它看起来是这样的 rounded navigation bar在导航栏中添加UIView

我在想什么是我添加UIView圆角并将其插入导航栏中。所以这是我的代码

let roundView = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 44)) 
roundView.backgroundColor = UIColor.whiteBackground 
roundView.roundCorners(corners: [.topLeft, .topRight], radius: 20) 
navigationController?.navigationBar.insertSubview(roundView, at: 0) 
setTitleTextColor(color: UIColor.black) 

由UI,这个效果很好。但后来我的UIBarButtonItem丢失了,它被我的自定义视图所掩盖,无法点击。所以我的问题是,如何在导航栏中添加子视图?

谢谢!

+1

删除'NavigationBar'并采取'UIView'并根据您的需要进行自定义。它更好地做简单。 –

+0

@dahiya_boy你是什么意思? –

只是不使用UINavigation栏并全部创建。是最简单的方法。否则,你可以用图形图象尝试:

navigationController?.navigationBar.backgroundColor = UIColor(patternImage: UIImage(named: "background.png")) 
+0

不幸的是,我仍然需要我的导航控制器。 –

+0

按照我的说明,您可以尝试使用图案图像。 – Totka

+0

我结束了使用图像作为背景。谢谢! –

从故事板,

  1. 你的ViewController与navigationController

enter image description here

  1. 选择navigationController并取消选择下面选择的选项,即显示导航栏的可见性。
  2. enter image description here

    1. 取一个UIView(purpleView)与约束

      • 顶部,导致尾部= 0 w.r.t.上海华
      • 高度= 64
    2. 再举的UIView(whiteView)与约束

      • 顶= 20(对于状态栏)
      • 领先后底部= 0 w.r.t. purpleView purpleView
    3. 现在加上取消和标签,您whiteview

    4. 现在你的UI层次是像下面

    5. enter image description here

      enter image description here

      1. 取出白衣eView并制作角落半径
      2. 就是这样。

        如果你不使用故事板,那么你也可以用代码做同样的事情。在这种情况下,您必须设置purpleView和whiteView的框架而不是约束。

        现在希望它对你清楚。

      开始=“7>
    开始=>
开始=>

只隐藏导航栏。在UIViewController中添加UIView。在UIView添加按钮为后退按钮或任何你想要的东西。