2017-10-21 133 views
0

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

larger navbar with regular title

回答

0

我找不到这个任何文件,所以我打了一下。看起来在iOS 11中,您不能将该标题作为按钮并在左侧显示较大。

此外,我玩的按钮的框架大小(下面添加)。无论我设置框架,我无法增加按钮大小。


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

ViewController.swiftviewDidLoad,我添加以下代码:

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 

这最终看起来像你的榜样。

如果我

  • 设置.title空字符串,或remark线路输出:导航栏被拉伸,并没有标题的文本显示(或标题文本在Interface Builder设置显示)

  • 注释掉.prefersLargeTitles,或将其设置为false:导航栏是标准高度,按钮显示,但没有标题文本显示。

  • 话说出来的titleView行,:

    • 离开.prefersLargeTitles设置为true:在title文本显示在大左和导航栏的高度被拉伸。
    • .prefersLargeTitles设置为falsetitle文本显示在顶部中心,导航栏为正常高度。