그래서 탐색 모음 제목 글꼴을 변경해야하는이 코드가 있지만
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont
fontWithName:_dataManager.optionsSettings.fontString size:14], NSFontAttributeName,
[UIColor whiteColor], NSForegroundColorAttributeName, nil];
[[UINavigationBar appearance] setTitleTextAttributes:attributes];
이 코드로 뒤로 버튼 글꼴을 변경하면 잘 작동합니다.
//set backbutton font
NSDictionary *normalAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:_dataManager.optionsSettings.fontString size:15], NSFontAttributeName,
nil];
[[UIBarButtonItem appearance] setTitleTextAttributes:normalAttributes
forState:UIControlStateNormal];
답변
제목 글꼴 (및 색상)을 변경하는 올바른 방법은 다음과 같습니다.
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor redColor],
NSFontAttributeName:[UIFont fontWithName:@"mplus-1c-regular" size:21]}];
편집 : Swift 4.2
self.navigationController?.navigationBar.titleTextAttributes =
[NSAttributedString.Key.foregroundColor: UIColor.red,
NSAttributedString.Key.font: UIFont(name: "mplus-1c-regular", size: 21)!]
편집 : Swift 4
self.navigationController?.navigationBar.titleTextAttributes =
[NSAttributedStringKey.foregroundColor: UIColor.red,
NSAttributedStringKey.font: UIFont(name: "mplus-1c-regular", size: 21)!]
스위프트 3 :
self.navigationController?.navigationBar.titleTextAttributes =
[NSForegroundColorAttributeName: UIColor.redColor(),
NSFontAttributeName: UIFont(name: "mplus-1c-regular", size: 21)!]
답변
다른 답변에는 문제가 없습니다. 글꼴 설정을 위해 스토리 보드 버전을 공유하고 있습니다.
1. 내비게이션 컨트롤러 내에서 내비게이션 바 선택
2. Attributes Inspector에서 제목 글꼴 변경
(Xcode가 새 글꼴을 선택하기 전에 탐색 막대의 막대 색조를 전환해야 할 것입니다)
메모 (주의 사항)
이것이 Xcode 7.1.1+에서 작동하는지 확인했습니다. ( 아래 샘플 참조 )
- 글꼴이 적용되기 전에 탐색 모음 색조를 전환해야합니다 (Xcode의 버그처럼 보임; 기본값으로 다시 전환하면 글꼴이 고정됨).
- 시스템 폰트를 선택하는 경우 ~ 크기가 0.0이 아닌지 확인하십시오 (그렇지 않으면 새 폰트는 무시됩니다)
- 뷰 계층 구조에 NavBar가 하나만있을 때 이것이 문제없이 작동하는 것처럼 보입니다. 동일한 스택의 보조 NavBar가 무시되는 것으로 보입니다. (마스터 내비게이션 컨트롤러의 navBar를 표시하는 경우 다른 모든 사용자 지정 navBar 설정은 무시됩니다).
Gotchas (deux)
이들 중 일부는 반복되므로 주목할 가치가 매우 높습니다.
- 때때로 스토리 보드 xml이 손상됩니다. 이를 위해서는 스토리 보드의 구조를 소스 코드 모드로 검토해야합니다 (스토리 보드 파일을 마우스 오른쪽 버튼으로 클릭> 다른 이름으로 열기 …).
- 어떤 경우에는 사용자 정의 런타임 속성과 연관된 navigationItem 태그가보기 컨트롤러 태그 대신보기 태그의 xml 하위로 설정되었습니다. 그렇다면 올바른 작동을 위해 태그 사이에서 제거하십시오.
- NavBar Tint를 토글하여 사용자 정의 글꼴이 사용되도록합니다.
- 동적 글꼴 스타일을 사용하지 않는 경우 글꼴의 크기 매개 변수를 확인하십시오.
- 보기 계층 구조가 설정을 재정의합니다. 스택 당 하나의 글꼴이 가능한 것으로 보입니다.
결과
샘플
- 고급 프로젝트에서 여러 글꼴을 보여주는 비디오
- 간단한 소스 다운로드
- 고급 프로젝트 다운로드 ~ 여러 NavBar 글꼴 및 사용자 정의 글꼴 해결 방법 표시
- 여러 글꼴 및 사용자 정의 글꼴을 보여주는 비디오
사용자 정의 글꼴 처리
참고 ~ Code With Chris 웹 사이트에서 멋진 체크리스트 를 찾을 수 있으며 샘플 다운로드 프로젝트를 볼 수 있습니다.
자신 만의 글꼴이 있고 스토리 보드에서 사용하려는 경우 다음 SO 질문 에 적절한 답변이 있습니다. 한 가지 대답은 이러한 단계를 식별합니다.
- 사용자 지정 글꼴 파일 (.ttf, .ttc) 가져 오기
- Xcode 프로젝트로 글꼴 파일 가져 오기
- app-info.plist에서 응용 프로그램에서 제공하는 Fonts라는 키를 추가합니다. 배열 유형이며 모든 글꼴 파일 이름을 배열에 추가합니다.
- 스토리 보드의 NavigationBar에서 Attribute Inspector로 이동하여 글꼴 선택 영역의 오른쪽 아이콘 버튼을 클릭합니다. 팝업 패널에서 사용자 지정에 글꼴을 선택하고 포함 된 글꼴 이름 패밀리를 선택합니다.
사용자 정의 글꼴 해결 방법
따라서 Xcode는 자연스럽게 UINavigationItem에서 사용자 지정 글꼴을 처리 할 수있는 것처럼 보이지만 해당 기능은 제대로 업데이트되지 않습니다 (선택된 글꼴은 무시 됨).
이 문제를 해결하려면 :
한 가지 방법은 스토리 보드를 사용하여 수정하고 코드 줄을 추가하는 것입니다. 먼저 UIView (UIButton, UILabel 또는 기타 UIView 하위 클래스)를 View Controller에 추가합니다 (탐색 항목이 아님 … Xcode는 현재 허용하지 않습니다. 그). 컨트롤을 추가 한 후 스토리 보드의 글꼴을 수정하고 뷰 컨트롤러에 대한 아웃렛으로 참조를 추가 할 수 있습니다. 해당 뷰를 UINavigationItem.titleView에 할당하기 만하면됩니다. 필요한 경우 코드에 텍스트 이름을 설정할 수도 있습니다. 보고 된 버그 (23600285).
@IBOutlet var customFontTitleView: UIButton!
//Sometime later...
self.navigationItem.titleView = customFontTitleView
답변
이 시도:
NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor],NSForegroundColorAttributeName,
[UIColor whiteColor],NSBackgroundColorAttributeName,nil];
self.navigationController.navigationBar.titleTextAttributes = textAttributes;
답변
탐색 표시 줄 제목 변경을위한 내 Swift 코드 :
let attributes = [NSFontAttributeName : UIFont(name: "Roboto-Medium", size: 16)!, NSForegroundColorAttributeName : UIColor.whiteColor()]
self.navigationController.navigationBar.titleTextAttributes = attributes
배경 글꼴도 변경하려면 AppDelegate에 다음이 있습니다.
let attributes = [NSFontAttributeName : UIFont(name: "Roboto-Medium", size: 16)!, NSForegroundColorAttributeName : UIColor.whiteColor()]
UIBarButtonItem.appearance().setTitleTextAttributes(attributes, forState: UIControlState.Normal)
답변
App Delegate-Did Finish Lauch에이 한 줄 코드를 추가합니다. 응용 프로그램 전체에서 탐색 모음의 글꼴, 색상을 변경합니다.
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font: UIFont(name: "YOUR FONT NAME", size: 25.0)!]
답변
귀하의 질문에 대한 답변은 다음과 같습니다.
뷰가로드 된 후 탐색 모음 제목이 업데이트되었으므로 코드를 아래 방법으로 이동하십시오. viewDidLoad에서 위의 코드를 추가하려고 시도했지만 작동하지 않습니다. viewDidAppear 메서드에서 제대로 작동합니다.
-(void)viewDidAppear:(BOOL)animated{}
답변
누구나 Swift 3 버전이 필요합니다. redColor()
로 변경되었습니다 red
.
self.navigationController?.navigationBar.titleTextAttributes =
[NSForegroundColorAttributeName: UIColor.red,
NSFontAttributeName: UIFont(name: "{your-font-name}", size: 21)!]
