iOS 8에서 탐색 모음, 색조 및 제목 텍스트 색상
상태 표시줄의 배경 텍스트는 여전히 검은색입니다.흰색으로 바꾸려면 어떻게 해야 하나요?
// io8, swift, Xcode 6.0.1
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.barTintColor = UIColor.blackColor()
self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.orangeColor()]
}
인, 인application(_:didFinishLaunchingWithOptions:)
다음과 같이 기재합니다.
UINavigationBar.appearance().barTintColor = UIColor(red: 234.0/255.0, green: 46.0/255.0, blue: 73.0/255.0, alpha: 1.0)
UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white]
(Swift 4 이전 사용용)NSAttributedStringKey
대신NSAttributedString.Key
)
위해서titleTextAttributes
문서에는 다음과 같은 내용이 있습니다.
텍스트 속성 사전에서 제목의 글꼴, 텍스트 색상, 텍스트 그림자 색상 및 텍스트 그림자 오프셋을 지정할 수 있습니다.
난 알렉스의 대답이 좋아.빠른 시용품을 원하시면ViewController
꼭 사용하세요
viewWillAppear()
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
var nav = self.navigationController?.navigationBar
nav?.barStyle = UIBarStyle.Black
nav?.tintColor = UIColor.white
nav?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.orange]
//nav?.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.orange] // swift 4.2
}
색상을 전체적으로 변경하려면 이 코드가 다음 위치에 있어야 합니다.NavigationController
의viewDidLoad
기능:
class NavigationController: UINavigationController, UIViewControllerTransitioningDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Status bar white font
self.navigationBar.barStyle = UIBarStyle.Black
self.navigationBar.tintColor = UIColor.whiteColor()
}
}
다음으로 변경하려면ViewController
를 참조할 필요가 있습니다.NavigationController
에서ViewController
비슷한 글씨를 써서ViewController
의viewWillAppear
기능.
스위프트 5
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
스위프트 4
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
목표를 달성하려면 다음 행을 삽입해야 합니다.viewWillAppear
CustomViewController로 이동합니다.
[self.navigationController.navigationBar setBarTintColor:[UIColor whiteColor]];
[self.navigationController.navigationBar setTranslucent:NO];
Swift 2.x의 경우 다음과 같이 동작합니다.
self.navigationController?.navigationBar.barTintColor = UIColor.redColor()
Swift3.x의 경우 다음과 같이 동작합니다.
self.navigationController?.navigationBar.barTintColor = UIColor.red
스토리보드에서 이 작업을 수행하려면(Interface Builder Inspector)
의 도움을 받아IBDesignable
의 Interface Builder Inspector에 옵션을 추가할 수 있습니다.UINavigationController
스토리보드에서 수정하는 거야먼저 다음 코드를 프로젝트에 추가합니다.
@IBDesignable extension UINavigationController {
@IBInspectable var barTintColor: UIColor? {
set {
navigationBar.barTintColor = newValue
}
get {
guard let color = navigationBar.barTintColor else { return nil }
return color
}
}
@IBInspectable var tintColor: UIColor? {
set {
navigationBar.tintColor = newValue
}
get {
guard let color = navigationBar.tintColor else { return nil }
return color
}
}
@IBInspectable var titleColor: UIColor? {
set {
guard let color = newValue else { return }
navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: color]
}
get {
return navigationBar.titleTextAttributes?["NSForegroundColorAttributeName"] as? UIColor
}
}
}
그런 다음 스토리보드에서 UINavigation Controller의 속성을 설정하기만 하면 됩니다.
Swift5 및 Xcode 10의 경우
self.navigationItem.title = "your name"
let textAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
navigationController?.navigationBar.titleTextAttributes = textAttributes
앱 전체의 틴트 색상과 바 색상을 설정하고 싶다면 다음 코드를 AppDelegate.swift에 추가할 수 있습니다.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
var navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor(red:1.00, green:1.00, blue:1.00, alpha:1.0)
navigationBarAppearace.barTintColor = UIColor(red:0.76, green:0.40, blue:0.40, alpha:1.0)
navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
return true
`
탐색 모음TintColor 및 tintColor가 설정되었습니다.
swift 4로 업데이트
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.tintColor = UIColor.blue
self.navigationController?.navigationBar.barStyle = UIBarStyle.black
}
스위프트 5.1
복사하여 붙여넣기만 하다ViewDidLoad()
필요에 따라 크기를 변경할 수 있습니다.복사하여 붙여넣기 전에 화면 상단에 탐색 막대를 추가합니다.
navigationController?.navigationBar.titleTextAttributes = [ NSAttributedString.Key.font: UIFont(name: "TitilliumWeb-Bold.ttf", size: 16.0)!, NSAttributedString.Key.foregroundColor: UIColor.white]
작동하지 않으면 텍스트 색상만 변경할 수 있습니다.
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
스위프트 4.2버전 앨버트의 답변-
UINavigationBar.appearance().barTintColor = UIColor(red: 234.0/255.0, green: 46.0/255.0, blue: 73.0/255.0, alpha: 1.0)
UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor : UIColor.white]
Swift 버전 4.2에서 탐색 모음 제목의 텍스트 색상을 흰색으로 설정:
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
스위프트 4
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.barTintColor = UIColor.orange
navigationController?.navigationBar.tintColor = UIColor.white
navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
}
스위프트 4.1
viewDidLoad에 func 추가
override func viewDidLoad() {
super.viewDidLoad()
setup()
}
에서setup()
함수 추가:
func setup() {
navigationController?.navigationBar.prefersLargeTitles = true
navigationController?.navigationBar.barStyle = .blackOpaque
navigationItem.title = "YOUR_TITLE_HERE"
navigationController?.navigationBar.barTintColor = .black
let attributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
navigationController?.navigationBar.largeTitleTextAttributes = attributes
}
커스텀 컬러의 경우TitleText
에NavigationBar
Swift 3의 심플하고 짧은 코드는 다음과 같습니다.
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white]
또는
navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName :UIColor.white]
Swift 4.2에서
var nav = self.navigationController?.navigationBar
nav?.barStyle = UIBarStyle.Black
nav?.tintColor = UIColor.white
nav?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.orange]
Swift 3.2(Swift 4.0 제외)를 통해 고속화
self.navigationController?.navigationItem.largeTitleDisplayMode = .always
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationController?.navigationBar.largeTitleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
// unconfirmed but I assume this works:
self.navigationController?.navigationBar.barTintColor = UIColor.white
self.navigationController?.navigationBar.barStyle = UIBarStyle.black
Swift 3에서는 다음과 같이 동작합니다.
navigationController?.navigationBar.barTintColor = UIColor.white
navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue]
언급URL : https://stackoverflow.com/questions/26008536/navigationbar-bar-tint-and-title-text-color-in-ios-8
'programing' 카테고리의 다른 글
Objective-C에서의 NSString 대문자와 소문자 변경 (0) | 2023.04.16 |
---|---|
Pod 설치는 "CocoaPods Master repo 설정"에 머무르고 있습니다. (0) | 2023.04.16 |
WPF ComboBox에서 선택한 항목에 드롭다운 부분의 항목과 다른 템플릿을 사용할 수 있습니까? (0) | 2023.04.16 |
셸 스크립팅에서 정수 비교를 위한 논리적 OR 작업을 수행하는 방법은 무엇입니까? (0) | 2023.04.16 |
Go에서 int 값을 문자열로 변환하려면 어떻게 해야 합니까? (0) | 2023.04.16 |