2020/01/07 実務で学んだこと

【実務で学んだこと】 Diary

その日に覚えたこと、学んだこと、知ったこと、気になったこと等を日記のように書いていきます。

今回は 2020/01/07(火)に学んだことを書いていきます。

【Swift】

NavigationBarのカスタマイズ

NavigationBarはstoryboard上でもカスタマイズが可能ですが、コードでカスタマイズすることもできます。

NavigationBarの画像
遷移先の画面
override func viewDidLoad() {
        super.viewDidLoad()
        
        // タイトルの設定
        self.navigationItem.title = "ページタイトル"
        // NavigationBarのスタイル設定(デフォルトは白の半透明)
        self.navigationController?.navigationBar.barStyle = .black
        // NavigationBarの半透明化(デフォルトはtrue)
        self.navigationController?.navigationBar.isTranslucent = false
        // NavigationItemの色設定(デフォルトは.barStyleによって黒か白)
        self.navigationController?.navigationBar.tintColor = UIColor.red
        // タイトルの装飾設定
        self.navigationController?.navigationBar.titleTextAttributes = [
            // タイトルの色設定
            .foregroundColor: UIColor.red
        ]
}

NavigationBarの戻るボタンの文字を非表示にする

Backボタンをカスタマイズすることもできます。

Backボタンはデフォルトでは前画面のタイトルが表示されます。

しかし、以下の条件の時は「Back」と表示されます。

  • 前画面のタイトルが無い
  • 前画面のタイトルが長すぎて表示しきれない

BackボタンはBackボタンが表示される画面ではなく、遷移元のViewControllerで設定することでカスタマイズできます。

NavigationBarの画像
遷移元の画面
override func viewDidLoad() {
        super.viewDidLoad()
        
        // Backボタンの変更
        self.navigationItem.backBarButtonItem = UIBarButtonItem(
            title: "戻る",
            style: .plain,
            target: nil,
            action: nil
        )  
}

「戻る」ではなく文字を非表示にしたい場合は title に空文字(””)を設定することで非表示にすることができます。

戻るボタンを非表示にする
戻るの文字を非表示
override func viewDidLoad() {
        super.viewDidLoad()
        
        // Backボタンの変更
        self.navigationItem.backBarButtonItem = UIBarButtonItem(
            title: "",
            style: .plain,
            target: nil,
            action: nil
        )  
}

他にもNavigationBarを透明にしたり、画像を設定したりすることもできるので、他にも知りたい人は以下の記事がとても参考になります。

参考記事

アプリ全体にNavigationItemの色を反映させる

アプリケーション全体のNavigationBarItemの色を変更したい場合は、AppDelegateに設定することで可能となります。

AppDelegate.swift
// ナビゲージョンアイテムの文字色
UINavigationBar.appearance().tintColor = UIColor.red
 
// ナビゲーションバーのタイトルの文字色
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.blue]
 
// ナビゲーションバーの背景色
UINavigationBar.appearance().barTintColor = UIColor.yellow
 
// ナビゲーションバーの背景の透過
(UINavigationBar.appearance() as UINavigationBar).setBackgroundImage(UIImage(), for: .default)
 
// ナビゲーションバーの下の影を無くす
UINavigationBar.appearance().shadowImage = UIImage()

アプリケーション全体ではなく、個別にカスタマイズする場合はカスタマイズしたいViewControllerに指定することで可能となります。

カスタマイズしたいViewController
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    // ナビゲージョンアイテムの文字色
    self.navigationController!.navigationBar.tintColor = UIColor.red
    // ナビゲーションバーのタイトルの文字色
    self.navigationController!.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.blue]
    // ナビゲーションバーの背景色
    self.navigationController!.navigationBar.barTintColor = UIColor.yellow
    // ナビゲーションバーの背景の透過
    self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: .default)
    // ナビゲーションバーの下の影を無くす
    self.navigationController!.navigationBar.shadowImage = UIImage()
}

参考記事

【Android】

Android Studioのshortcut keyの設定

Android Studio でショートカットキーを設定したい場合は設定(⌘ + ,)のKeymapでショートカットコマンドを登録することができます。

画面分割や単語の複数選択なども設定できるのでとても便利です。

参考記事