iOS 中带有图像和两个标题的自定义导航栏
custom navigation bar with image and two titles in iOS
我正在尝试使用两个标题和一个图像实现以下导航栏:
大标题变体:
小标题变体:
我试过 subclassing UINavigationBar
并向其添加子视图,但它们根本没有呈现。
我尝试在情节提要中设置 titleView
,但 titleView 的高度似乎受到限制。
实现这个自定义导航栏的正确方法是什么?
我也试过这个(并将 Storyboard 中的 viewController 设置为那个 class):
class NavViewController: UINavigationController {
var titleView = UIView()
override func viewDidLoad() {
super.viewDidLoad()
self.navigationBar.topItem?.titleView?.backgroundColor = .gray
titleView.frame = CGRect(x: 0, y: 0, width: 100, height: 300)
self.navigationBar.topItem?.titleView = titleView
}
}
在 xib 文件中单独设计自定义视图,然后将该 xib 设置为导航栏的标题视图
self.navBar.topItem?.titleView = logoImage
对大标题执行此操作,对于较小的标题仅在 titleView 中填充图像。
在 viewDidLoad
中的 ViewController
内,添加 self.navigationController?.navigationBar.addSubview(imageView)
。 (不需要子类化)
UINavigationbar 中甚至还支持 AutoLayout,这对动画来说非常有用。
我正在尝试使用两个标题和一个图像实现以下导航栏:
大标题变体:
小标题变体:
我试过 subclassing UINavigationBar
并向其添加子视图,但它们根本没有呈现。
我尝试在情节提要中设置 titleView
,但 titleView 的高度似乎受到限制。
实现这个自定义导航栏的正确方法是什么?
我也试过这个(并将 Storyboard 中的 viewController 设置为那个 class):
class NavViewController: UINavigationController {
var titleView = UIView()
override func viewDidLoad() {
super.viewDidLoad()
self.navigationBar.topItem?.titleView?.backgroundColor = .gray
titleView.frame = CGRect(x: 0, y: 0, width: 100, height: 300)
self.navigationBar.topItem?.titleView = titleView
}
}
在 xib 文件中单独设计自定义视图,然后将该 xib 设置为导航栏的标题视图
self.navBar.topItem?.titleView = logoImage
对大标题执行此操作,对于较小的标题仅在 titleView 中填充图像。
在 viewDidLoad
中的 ViewController
内,添加 self.navigationController?.navigationBar.addSubview(imageView)
。 (不需要子类化)
UINavigationbar 中甚至还支持 AutoLayout,这对动画来说非常有用。