iOS7でUITabBarのアイコンに画像を設定する時の注意
ここ最近、Android案件に弄ばれていたのですが、久々にiOS案件で触ったところさっそく躓いたので記しておきます。。
タブバーで画像を設定する時に今までは以下の処理を使っていました。
[tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"***.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"***.png"]];
今回、iOS7以上に対応しているプロジェクトに対して使用したところ警告が出まして。
"Use initWithTitle:image:selectedImage: or the image and selectedImage properties along with UIImageRenderingModeAlwaysOriginal"
なるほど。
initWithTitle:image:selectedImage
もしくは
image and selectedImage properties
を使えってことね、と処理を書き換えたところ、なんとタブの選択状態時にアイコンに対して青く塗り潰されている!
なんだよ、なんだよ〜、と思いよくよく調べて(警告を見直した)ところ
"along with UIImageRenderingModeAlwaysOriginal"
これを設定しろってことか、、ということで画像を設定しているところに記述を加えました。
[[UIImage imageNamed:@"***.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
すると無事に意図した画像アイコンが表示されました。
この件に関して以下のサイトが丁寧にまとめられています。
http://dev.classmethod.jp/references/ios-7-uikit-template-image/
日々進化するObjective-C。
がんばってついていかないといけないですね。