2017-09-25 89 views
0

我想創建帶圓角的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你是什麼意思? –

回答

1

只是不使用UINavigation欄並全部創建。是最簡單的方法。否則,你可以用圖形圖象嘗試:

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

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

+0

按照我的說明,您可以嘗試使用圖案圖像。 – Totka

+0

我結束了使用圖像作爲背景。謝謝! –

0

從故事板,

  1. 你的ViewController與navigationController

enter image description here

  • 選擇navigationController並取消選擇下面選擇的選項,即顯示導航欄的可見性。
  • enter image description here

  • 取一個UIView(purpleView)與約束

    • 頂部,導致尾部= 0 w.r.t.上海華
    • 高度= 64
  • 再舉的UIView(whiteView)與約束

    • 頂= 20(對於狀態欄)
    • 領先後底部= 0 w.r.t. purpleView purpleView
  • 現在加上取消和標籤,您whiteview

  • 現在你的UI層次是像下面

  • enter image description here

    enter image description here

  • 取出白衣eView並製作角落半徑
  • 就是這樣。

    如果你不使用故事板,那麼你也可以用代碼做同樣的事情。在這種情況下,您必須設置purpleView和whiteView的框架而不是約束。

    現在希望它對你清楚。

    0

    只隱藏導航欄。在UIViewController中添加UIView。在UIView添加按鈕爲後退按鈕或任何你想要的東西。