如何自定义两个标签左对齐的导航栏

how to customise UINavigation bar with two labels left aligned

要求

我只能把标题放在中间

如何实现?

自定义视图,设置navigationItem.titleView。

您可以创建自定义视图并将其设置为导航项的 titleView

TitleView.xib

  • 添加 UIView 并根据需要创建布局。
  • 设置 View 的 backgroundColor 和 ViewController 为 clear

TitleView.swift

import UIKit

class TitleView: UIView {

    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var label1: UILabel!
    @IBOutlet weak var label2: UILabel!
    
    class func instanceFromNib() -> TitleView {
        return UINib(nibName: "TitleView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! TitleView

    }
    
    override var intrinsicContentSize: CGSize {
        return UIView.layoutFittingExpandedSize
    }
}

ViewController.swift

 override func viewDidLoad() {
      super.viewDidLoad()
        
      self.navigationItem.titleView = TitleView.instanceFromNib()
 }

预览