實現 titleview 居中 navigationItem

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)
     
 }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章