0

我正在尝试使用两个标题和一个图像来实现以下导航栏:

大标题变体:

大的

小标题变体:

小的

我尝试对其进行子类UINavigationBar化并向其添加子视图,但它们根本没有渲染。我尝试titleView在情节提要中设置 a,但似乎 titleView 的高度受到限制。

实现此自定义导航栏的正确方法是什么?

我也试过这个(并将 Storyboard 中的 viewController 设置为该类):

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

故事板

4

2 回答 2

1

ViewController在里面viewDidLoad,加self.navigationController?.navigationBar.addSubview(imageView)。(无需子类化) UINavigationbar 内部甚至还支持 AutoLayout,这对于动画来说非常有用。

于 2019-10-15T11:55:00.447 回答
0

在 xib 文件中单独设计您的自定义视图,然后将该 xib 设置为导航栏的标题视图

self.navBar.topItem?.titleView = logoImage

对大标题执行此操作,对于较小的标题仅在 titleView 中填充图像。

于 2019-10-14T10:28:19.307 回答