Swiftでナビゲーションバーの境界線を削除するにはどうすればいいですか? 質問する

Swiftでナビゲーションバーの境界線を削除するにはどうすればいいですか? 質問する

ナビゲーション バーの境界線を削除しようとしましたが、うまくいきませんでした。調べたところ、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: "")

図:

ここに画像の説明を入力してください

ベストアンサー1

問題は次の 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()

おすすめ記事