iOS 11更喜欢带有uibutton作为标题的LargeTitles

时间:2017-10-21 16:17:06

标签: ios swift uibutton uinavigationbar

正如标题所示,我在导航栏中使用UIButton作为titleView。有没有办法让UIButton与导航栏一起变大?当我设置self.navigationController?.navigationBar.prefersLargeTitles = true时,我得到的就是这个,

larger navbar with regular title

1 个答案:

答案 0 :(得分:0)

我找不到任何关于此的文档,所以我玩了一下。在iOS 11中,您似乎无法将该标题作为按钮并在左侧显示较大的内容。

另外,我玩了按钮的框架尺寸(下面添加)。无论我将帧设置为什么,我都无法增加按钮大小。

要重新创建,我设置了一个单视图项目。我将视图控制器嵌入到导航控制器中。

struct Login: Encodable { let username: String let password: String } struct User: Decodable { let id: Int let username: String let email: String } struct Response: Decodable { let token: String let user: User } ' ViewController.swift中,我添加了以下代码:

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 设置为空字符串,或者注释掉该行:导航栏被拉伸,并且没有显示标题文本(或在Interface Builder中显示标题文本)

  • 注释.title,或将其设置为.prefersLargeTitles:导航栏是正常高度,按钮显示,但不显示标题文字。

  • 注明false行,AND:

    • titleView设置为.prefersLargeTitlestrue文字显示在左侧,并且导航栏的高度已拉伸。
    • title设置为.prefersLargeTitlesfalse文字显示在顶部中心,导航栏为正常高度。