如何自定义两个标签左对齐的导航栏
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()
}
预览
要求
我只能把标题放在中间
如何实现?
自定义视图,设置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()
}