頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


iOS 7で画像を使ったボタンを青くしたい

今までのiOS 6用コードをXcode 5&iOS 7で実行させたら「あら?」ってなることの一つにボタンの色があったんだよね。
特にどうするのよ?って思ったのがデフォルトのあの青色はどうしたらいいの?って思ったんだ。

Setting app in iOS 7

↑ほら、設定アプリとかで見るでしょ?この色よ。iOS 7以前と違いボタンがボタンっぽくなくなったけど、タップできるんだってわかるように青色で統一されてるよね(アプリによって色が違ったりもするけど)。

それで俺アプリもタップできるところはこの色を使いたいなあ、と思ったのよ。

ボタンに画像を使う場合、こういうコードでいいよね。ナビゲーションバーに表示させるようにしてるけど、挙動はself.viewにaddSubview:しようがさして変わらないはず。
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:[UIImage imageNamed:@"closebutton.png"] forState:UIControlStateNormal];
    button.frame = CGRectMake(0, 0, 40, 40);
    [button addTarget:self action:@selector(buttonTappedHandler) forControlEvents:UIControlEventTouchUpInside];
        
    UIBarButtonItem *buttonItem = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];
    self.navigationItem.rightBarButtonItem = buttonItem;
}
iOS 6 button

↑このコードだとiOS 6ではこんな感じ。
一応self.viewにもボタンを表示してる(左下ね)。

iOS 7 button

↑iOS 7だとこのように。
この色が黒いのはもともとの画像の色のままなんだ。
ってことは、iOS 7であの青で表示させたいのなら色を調べてその色で画像素材を作成しなおして、、、って面倒だよねえ。

でもありがたいことにいいのがあるんですよ、奥様!
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    //以下同じ
}
iOS 7から UIButtonTypeSystem というのが追加されてて、これを使うとさっきのが

UIButtonTypeSystem

↑ほれ、この通り。あああ、ありがたや、ありがたや。

<< iOS 7のナビゲーションバーまわりの変更点は要注意   TopPage  iOS 7の半透明ビューはどうするの >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/811-410a8dc4




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad