viewDidLoad:
let width: CGFloat = 100
let ScreenWidth = UIScreen.main.bounds.width
// 第一步,設置 titleView 爲一個空白UIView(作背板)
navigationItem.titleView = UIView(frame: Rect(0, 0, ScreenWidth, 44))
// 第二步,這是目標 titleView:
let naviContentView = UIView(frame: Rect((ScreenWidth-width)/2, 30, width, 20))
// 第三步,設置frame。
// 因爲要獲取titleView的frame,所以必須async執行
//(或者layoutSubviews裏執行,就是等0秒讓系統自動佈局後才能獲得frame)
DispatchQueue.main.async {
self.naviContentView.frame = (self.view.window?.convert(self.naviContentView.frame,
to: self.navigationItem.titleView))!
self.navigationItem.titleView?.addSubview(self.naviContentView)
}