自定義 Navigation Bar 的屬性
眾所周知,Navigation Bar 的外觀可以進行自定義,在本節教程中,將介紹如何改變其背景顏色、tint 顏色,以及給 Navigation Bar 添加圖片。本節教程使用 Xcode 8.2.1 和 iOS 10.2。
打開 Xcode,創建一個 Single View Application。

Product Name 使用 IOS10CustomizeNavBarTutorial ,填寫自己的 Organization Name 和 Organization Identifier,Language 一欄選擇 Swift,Devices 選擇 iPhone。

想在 Navigation Bar 上放一個圖片, 下載 圖片。打開 Assets Library,把圖片拖拽到 Assets Library 里。找到 Storyboard ,選中 View Controller,在頂部的 Editor 菜單欄中選擇 Embed in -> Navigation Controller。接下來,從 Object Library 上拖拽一個 Bar Button 放到 Navigation Bar 的左邊,命名為 “Left Item”,重復相同的步驟,在 Navigation Bar 的右邊放置一個 Bar Button,命名為 “Left Item”。Storyboard 應該如下圖所示。

找到 ViewController.swift 文件,添加 ViewDidAppear 方法。
override func viewDidAppear(_ animated: Bool) {
// 1
let nav = self.navigationController?.navigationBar
// 2
nav?.barStyle = UIBarStyle.black
nav?.tintColor = UIColor.yellow
// 3
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
imageView.contentMode = .scaleAspectFit
// 4
let image = UIImage(named: "Apple_Swift_Logo")
imageView.image = image
// 5
navigationItem.titleView = imageView
}
- 創建一個 nav 變量,節省代碼量。
- Navigation Bar Style 設置成 black,tint color 設置成 yellow,也會導致 bar button item 變成黃色。
- 創建一個寬和高為 40 point 的 Image View,contentMode 設置成 scaleAspectFit,來調整 Image View 的圖片尺寸。
- 將 Swift Logo 圖片放置到 Image View 中。
- 將 ImageView 設置成 Navigation Item 的 titleView。
運行工程看一下自定義后的 Navigation Bar。

來自:http://swift.gg/2017/04/10/customizing-navigation-bar-ios-tutorial-ios10/