NavigationControllerの戻るボタンを別の画像にする
2017-02-05 | カテゴリ >> Swift

NavigationControllerの左上にある、「戻る」ボタンですが
デフォルトの画像で表示される < の形がけっこう太めだったので、 細くしたい!と思って検索してたら、 「自分の用意した画像に置き換えるのが良い」みたいだったんですが、調べたら結構ハマった。 ちなみに環境はSwift3です

結論

まず、自分で用意したイメージをxcassetsに登録しておき・・
(今回は “back_ar” と名付けた)
AppDelegateで下記実装を didFinishLaunchingWithOptions のメソッド内に追加

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        UINavigationBar.appearance().backIndicatorImage = UIImage(named: "back_ar")
        UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(named: "back_ar")
        return true
    }

ちなみに、TintColorで合わせてほしくない場合は、UIImageの withRenderingMode メソッドで
UIImageRenderingMode.alwaysOriginalを適用する
→ ?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)

imageのsizeは?

http://stackoverflow.com/questions/30002611/backbarbuttonitem-image-in-ios-8

を、見ると

HIG recommends that bar button images be 22×22

と言っているので、 1x の画像を 22pxの正方形でぶっこみました

けっこういい塩梅になったようです!

 

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn
2017-02-05 | カテゴリ >> Swift 

関連記事

Comment





Comment



*