iPhone XでのUINavigationBar/UITabBarの背景をFitさせる方法
- 2018.01.01
- iOS
iPhone Xになって、UINavigationBarの高さが変わりました。それによりUINavigationBarの背景画像のサイズが合わず、デザインが崩れてしまいました。詳細は勉強中なのですが、対応する方法を見つけたので、メモ書きしておきます。
let img = UIImage(named: "nav-background")?.resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: 0, bottom: 30, right: 0), resizingMode: .stretch)
UINavigationBar.appearance().setBackgroundImage(img, for: .default)
ポイントは、resizableImageでストレッチさせることです。一般的な方法だと思いますが、iOS実装で画像ストレッチをあまり使ったことがなかったので、すぐに解決できませんでした。
また、resizableImageの返り値がリサイザブルなUIImageですので、UIImageオブジェクトに対して、メソッドを読んだだけではいけません。代入するか、メソッドの結果を利用する必要があります。
UIEdgeInsetsは、Androidの9-patchほど多機能ではないようですが、ストレッチさせる領域を指定すればよいようです。
例の場合、画像の上の方をストレッチしてほしい場合になります。
引用元
UINavigationbar background image too smalldevno.com
-
前の記事
陸マイラー必見、マイルをかんたんにたくさん稼ぐ方法 2017.11.25
-
次の記事
ANA プレミアムクラスで元旦限定おせちを食す 2018.01.03