iosiphoneuinavigationbarxcode9-betaios11

Use the increased navigation-bar title in iOS 11


iOS 11 Beta 1 uses the increased navigation-bar title for almost all system-apps (it started doing this in iOS 10 and the Music app). I am wondering if Apple has a public API for this coming in iOS 11, or whether it will stay private for now.

The behavior is that the title has an increased font-size, is left aligned and will move to the navigation-bar once the user scrolls down. I've attached some screens showing this behavior in the Messages app here:

enter image description here

Although I could not find any reference in the UINavigationController and UINavigationBar so far, maybe someone knows some more details!


Solution

  • The only change done to UINavigationBar API for iOS 11 is prefersLargeTitles.

    Documentation here: https://developer.apple.com/documentation/uikit/uinavigationbar/

    You can do it to your own apps with one small change: check "Prefers Large Titles" for your navigation bar in IB, or if you prefer to do it in code using:

    navigationController?.navigationBar.prefersLargeTitles = true
    

    If you need to change the text attributes of the large title you need to use the new largeTitleTextAttributes property on UINavigationBar:

    UINavigationBar.appearance().largeTitleTextAttributes = [
        NSAttributedString.Key.foregroundColor: UIColor.black
    ]