在导航栏

时间:2017-09-25 08:44:44

标签: ios swift uinavigationcontroller uinavigationbar

我想创建带圆角的UINavigationBar。它看起来像这样 rounded navigation bar

我在想的是我添加圆角的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丢失了,它被我的自定义视图覆盖,无法点击。所以我的问题是,如何在导航栏中添加子视图?

谢谢!

2 个答案:

答案 0 :(得分:1)

不要使用UINavigation栏并全部创建。是最简单的方法。否则你可以试试模式图像:

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

答案 1 :(得分:0)

来自故事板,

  1. 您有ViewController和navigationController
  2. enter image description here

    1. 选择[obj for obj in vars(string).values() if callable(obj)] 并取消选择以下所选选项,即显示导航栏可见性。
    2. enter image description here

      1. 带有约束

        的UIView(purpleView)
        • 顶部,领先尾随= 0 w.r.t.上海华
        • 身高= 64
      2. 使用约束

        在purpleView中获取另一个UIView(whiteView)
        • top = 20(状态栏)
        • 领先尾随底部= 0 w.r.t. purpleView
      3. 现在为您的whiteview添加取消和标签

      4. 现在您的UI层次结构如下所示

      5. enter image description here

        enter image description here

        1. 取whiteView的出口并制作圆角半径
        2. 多数民众赞成。

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

          希望现在对你很清楚。