我试图理解这是一个错误还是预期的行为。
On iOS 10之前我们可以设置一个自定义标题,使用navigationItem.titleView
.
On iOS 11,当设置我们的navigationItem.largeTitleDisplayMode = .always
和设置navigationItem.titleView = <Some cool UIButton>
它正在显示both普通导航标题栏和大导航标题。
Illustration:
总结:
我们如何在大型导航标题上使用自定义 titleView?
编辑:这是预期的结果:
我找不到这方面的任何文档,所以我玩了一下。看来在 iOS 11 中,您将无法将该标题设置为按钮并在左侧大显示。
我不知道这是一个错误还是预期的结果,因为它似乎是一个新功能。最新(iOS 11)人机界面指南 https://developer.apple.com/ios/human-interface-guidelines/bars/navigation-bars/(HIG) 讨论较大的标题标签是为用户提供清晰上下文的一种方式。 HIG 还讨论了按钮之间的空间。但是,没有讨论使用按钮as标题。
为了重新创建,我设置了一个单一视图项目。我将视图控制器嵌入到导航控制器中。
In ViewController.swift
's viewDidLoad
,我添加了这段代码:
let titleButton = UIButton(type: .roundedRect)
titleButton.setTitle("Hello Button!", for: UIControlState.normal)
let navController = parent as! UINavigationController
navController.navigationBar.topItem!.title = "Hello???"
navController.navigationBar.topItem!.titleView = titleButton
navController.navigationBar.prefersLargeTitles = true
这最终看起来像你的例子。
IF I:
Update:链接到GitHub 上的示例项目 https://github.com/leanne63/UINavigationBarTitleDemo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)