IOS11で新しいnavigationBarの大きなタイトル機能を使用しようとしています。
ただし、次の行を追加した後:
self.navigationController?.navigationBar.prefersLargeTitles = true
ナビゲーションバーの背景色が黒に変わったことがわかりました。
そこで、背景色を手動で再度設定しました。
self.navigationController?.setBackgroundColor(UIColor(hexString: 0xFF7E79))
ただし、statusBarの背景色は変更されていないことがわかりました。
このコードでstatusBarの背景色を設定した後:
guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return
statusBar.backgroundColor = UIColor(hexString: 0xFF7E79)
StatusBarとnavigationBarの間に次のような醜い1pxの黒い線が表示されます。
では、navigationBarの背景色を設定する正しい方法は何ですか?
UINavigationBar
の背景色を設定する正しい方法は、barTintColor
プロパティを使用することです。
self.navigationController?.navigationBar.barTintColor = .red
設定した色が少し色あせていることに気付くかもしれません。ドキュメントに記載されているように:
isTranslucent
プロパティをfalse
に設定しない限り、この色はデフォルトで半透明になります。