在导航栏中添加UIView

我想用圆angular创buildUINavigationBar 。 它会看起来像这样 圆润的导航栏

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

 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) 

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

谢谢!

只是不使用UINavigation栏,并从头开始创build。 是最简单的方法。 否则,你可以尝试模式图像:

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

从故事板,

  1. 你有ViewController与navigationController

在这里输入图像说明

  1. selectnavigationController并取消select下面select的选项,即显示导航栏的可见性。

在这里输入图像说明

  1. 带一个UIView(purpleView)约束

    • 顶部,领先的尾随= 0的超监视
    • 身高= 64
  2. 在紫色视图中带有约束的另一个UIView(whiteView)

    • 顶部= 20(用于状态栏)
    • 领先的尾部底部= 0 wrt purpleView
  3. 现在添加取消和标签到你的whiteview

  4. 现在你的UI层次如下所示

在这里输入图像说明

在这里输入图像说明

  1. 以whiteView的出口和angular落半径

而已。

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

希望现在对你清楚。

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