1. ホーム
  2. ios

[解決済み] swiftでnavigationBarのボーダーを削除する方法は?

2022-04-28 05:06:33

質問

ナビゲーションバーのボーダーを消したいと思っているのですが、うまくいきません。調べると、shadowImageとBackgroundImageをnilに設定するように言われるようですが、私の場合はうまくいきません。

私のコード

    self.navigationController?.navigationBar.barTintColor = UIColor(rgba: "#4a5866")
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: ""), forBarMetrics: UIBarMetrics.Default)
    self.navigationController?.navigationBar.shadowImage = UIImage(named: "")

の図解をご覧ください。

解決方法は?

この2行に問題があります。

self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: ""), forBarMetrics: UIBarMetrics.Default)
self.navigationController?.navigationBar.shadowImage = UIImage(named: "")

名前のない画像はないので。 UIImage(named: "") が返されます。 nil これは、デフォルトの動作が開始されることを意味します。

非Nilの場合、デフォルトのシャドウ画像の代わりに、カスタムのシャドウ画像を表示する。カスタムシャドウを表示するには、カスタム背景画像も -setBackgroundImage:forBarMetrics: で設定する必要があります(デフォルトの背景画像が使用されている場合、デフォルトのシャドウ画像が使用されます)。

本当に空の画像が必要なので、初期化時に UIImage() :

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()