【问题标题】:iOS 11 prefersLargeTitles with uibutton as titleiOS 11 prefersLargeTitles 以 uibutton 作为标题
【发布时间】:2017-10-21 16:17:05
【问题描述】:

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

【问题讨论】:

    标签: ios swift uibutton uinavigationbar


    【解决方案1】:

    我找不到这方面的任何文档,所以我玩了一下。似乎在 iOS 11 中,您将无法将该标题设置为按钮并在左侧大显示。

    此外,我还调整了按钮的帧大小(添加在下面)。无论我将框架设置为什么,我都无法增加按钮大小。


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

    在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
    

    这最终看起来像你的例子。

    如果我:

    • 设置.title为空字符串,或者注释掉行:导航栏被拉伸,并且没有标题文本显示(或在Interface Builder中设置的标题文本显示)

    • 注释掉.prefersLargeTitles,或设置为false:导航栏为正常高度,按钮显示,但不显示标题文本。

    • 注释掉titleView 行,并且:

      • 将.prefersLargeTitles 设置为true:title 文本在左侧显示较大,并且导航栏的高度被拉伸。
      • 将.prefersLargeTitles设置为false:title文本显示在顶部中心,导航栏为正常高度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-24
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      • 2016-07-27
      • 1970-01-01
      相关资源
      最近更新 更多