2009/09/09

[Objective-C][iPhone sdk]tabbarにimageを追加

昨日に引き続き、tabbarネタ。

昨日は、フッターに文字を出力するところまできましたが、今日は、イメージを追加する方法を調べました。

UITabBarItemクラスのinitWithTitle:image:tag(ここまでがメソッド名)メソッドを使えば簡単にイメージを追加することができます。

試しにサンプルプログラムを作ってみました。

UITabBarController *hoge = [[UITabBarController alloc] initWithNibName:nil bundle:nil];

UIViewController *tab1 = [[[UIViewController alloc] initWithNibName:nil bundle:nil] autorelease];
UIViewController *tab2 = [[[UIViewController alloc] initWithNibName:nil bundle:nil] autorelease];
UIViewController *tab3 = [[[UIViewController alloc] initWithNibName:nil bundle:nil] autorelease];

tab1.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"ゲッツ" image:[UIImage imageNamed:@"test_01.png"] tag:0];
tab2.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"なんでだろー" image:[UIImage imageNamed:@"test_02.png"] tag:0];
tab3.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"フォー" image:[UIImage imageNamed:@"test_03.png"] tag:0];

hoge.viewControllers = [NSArray arrayWithObjects:tab1, tab2, tab3, nil];
[window addSubview:hoge.view];
// Override point for customization after application launch
[window makeKeyAndVisible];

で、これの実行結果は、下のようになります。

Photobucket
一番右側のボタンを押すと、色が反転します。

Photobucket

ここで問題となるのは、プログラムよりも、画像。

あまりにも大きいのを用意してしまうと、表示されません。
今回、サンプルプログラムで使ったのは、幅(width)41ピクセル、高さ(height)30ピクセルで作った画像。

iPhoneの仕様書には、具体的な最適サイズの記載がなかったような気がしたので、次回、以降、この記事を調べればすぐにわかるようにサイズを明記しました。

また、イメージを作成する際に、もう一つ注意しなくてはいけないのが、背景は、透明色にしないといけないこと。

こうしないと、せっかく作った画像も、全然、表示されず、プログラムのせいなんじゃーないかなーっと疑ってしまう可能性があります。(実際、昨日、そうなって夜中までデバッグしてました。)

ですので、こうした罠にはまらないようにイメージの背景色と大きさに注意を払った方がいいです。

あと、追加で、イメージを作る時の色はなんでも構いません。
色のついた部分が、iPhone上で、青色っぽく点灯するので。

0 コメント:

コメントを投稿