There's an echo in my head

日々のメモ。

UIBarButtonItemに独自の画像を使う

目的の画像をmyButton.png、1x1透過pngをtransparent.pngとする。

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"myButton"]
                                                         style:UIBarButtonItemStylePlain
                                                        target:aTarget
                                                        action:anAction];
[item setBackgroundImage:[UIImage imageNamed:@"transparent"]
                                    forState:UIControlStateNormal
                                  barMetrics:UIBarMetricsDefault];
aViewController.navigationItem.rightBarButtonItem = item;
[item release];

背景画像が設定されない場合iOSデフォルトの青めのボタンが設定されるので、透過画像を背景に指定することで背景が描画されないようにする必要がある。 このやり方はUITabBarの選択時に描画されるselectionIndicatorImageでも同様。

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。