programing

iOS 11에서 증가 된 탐색 표시 줄 제목 사용

goodcopy 2021. 1. 17. 11:56
반응형

iOS 11에서 증가 된 탐색 표시 줄 제목 사용


iOS 11 베타 1은 거의 모든 시스템 앱에 대해 증가 된 탐색 표시 줄 제목을 사용합니다 (iOS 10 및 음악 앱에서 시작됨). Apple이 iOS 11에서이 기능에 대한 공개 API를 가지고 있는지, 아니면 지금은 비공개로 유지 될지 궁금합니다.

동작은 제목의 글꼴 크기가 증가하고 왼쪽 정렬되며 사용자가 아래로 스크롤하면 탐색 표시 줄로 이동하는 것입니다. 여기에 메시지 앱에서이 동작을 보여주는 몇 가지 화면을 첨부했습니다.

여기에 이미지 설명 입력

UINavigationController그리고 UINavigationBar지금까지 참조를 찾을 수 없었지만 누군가가 더 자세한 내용을 알고있을 수도 있습니다!


UINavigationBariOS 11 용 API에 대한 유일한 변경 사항 prefersLargetitles다음과 같습니다. 여기에서 확인

한 번의 작은 변경으로 자신의 앱에이를 수행 할 수 있습니다. IB의 탐색 모음에 대해 "큰 제목 선호"를 선택하거나 다음을 사용하여 코드에서 수행하려는 경우

navigationController?.navigationBar.prefersLargeTitles = true

편집하다

큰 제목의 텍스트 속성을 변경해야하는 경우에 새 largeTitleTextAttributes속성 을 사용해야합니다 UINavigationBar.

UINavigationBar.appearance().largeTitleTextAttributes = [
    NSForegroundColorAttributeName: UIColor.white
]

Swift 4.2 업데이트 :

로가 NSForegroundColorAttributeName로 이름이 바뀌 었습니다 NSAttributedString.Key.foregroundColor, 사용 :

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

UINavigationBarprefersLargeTitles: Bool속성을. 여기 문서 .

class UINavigationBar {
   var prefersLargeTitles: Bool
}

UINavigationItemlargeTitleDisplayMode: UINavigationItem.LargeTitleDisplayMode속성을. 여기 문서 .

class UINavigationItem {
   var largeTitleDisplayMode: LargeTitleDisplayMode
}

둘 다 Interface Builder에서 수정할 수 있습니다.

이 동작을 켜려면로 설정 navigationController.navigationBar.prefersLargeTitles하십시오 true. 그런 다음을 설정하여 탐색 컨트롤러 스택의 각 개별보기 컨트롤러를 제어 할 수 있습니다 navigationItem.largeTitleDisplayMode.

Apple의 일반적인 디자인 지침은 큰 제목을 모든 곳에서 사용해서는 안된다는 것입니다 (예 : Clock 앱에서는이를 사용하지 않음). 일반적으로 탐색 컨트롤러의 첫 번째 수준에서만 큰 제목을 사용하는 것이 좋습니다. 그러나 이는 일반적인 지침 일뿐입니다.

큰 제목은 Cocoa Touch의 새로운 기능 비디오 (7:37) 소개되어 있습니다.


if #available(iOS 11.0, *) {
    self.navigationController?.navigationBar.prefersLargeTitles = true
    self.navigationItem.largeTitleDisplayMode = .always
} else {
    // Fallback on earlier versions
}

베타 1에는 수동으로 위로 스크롤 할 때만 큰 제목이 표시되는 버그가 있습니다.


Navigation Bar 속성 검사기에서 "Prefers Large Titles"를 확인하십시오.

여기에 이미지 설명 입력


if #available(iOS 11.0, *) {
    navigationController?.navigationBar.prefersLargeTitles = true
    navigationController?.navigationBar.topItem?.title = "Hello"
    navigationController?.navigationItem.largeTitleDisplayMode = .automatic

    let attributes = [
        NSAttributedStringKey.foregroundColor : UIColor.red,
        ]

    navigationController?.navigationBar.largeTitleTextAttributes = attributes
} else {
    // Fallback on earlier versions
}

iOS 11부터 큰 타이틀을 사용할 수 있으므로 iOS 버전도 확인해야합니다.

    if #available(iOS 11.0, *) {
        navigationController?.navigationBar.prefersLargeTitles = true
    }

참조 URL : https://stackoverflow.com/questions/44409173/use-the-increased-navigation-bar-title-in-ios-11

반응형