2016-06-01 4 views
0

すべての州で元のアイコンの色を持つようにします。Objective-C UITabBarItem:UIImageRenderingModeAlwaysOriginalを使用するすべての州のカスタムアイコンの色

for (int i=0; i<[_tabBar.subviews count]; i++) { 
    UITabBarItem * item = (UITabBarItem*)[_tabBar.subviews objectAtIndex:i]; 
    UIImage *image = [[UIImage imageNamed:imageName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
    item.image = image; 
    //item.selectedImage = image; //CRASH :(
} 

はしかし、私はitem.selectedImage = image;を設定することはできませんよ。私はそう、私はプログラム的にそれらを変更するために管理IBでそれを行うことができませんでした。この結果はクラッシュします。選択したイメージ状態と他の状態でそれを設定するには?

答えて

2

イメージのレンダリングモードを.xcassetsフォルダに設定できます。 enter image description here

属性インスペクタの[レンダリング]から[オリジナル画像]を選択するだけです。それを変更した後は、あなたのストーリーボードの「画像」と「選択した画像」の画像をタブバー画像用に選択するだけです。ストーリーボードには画像が灰色で表示されますが、アプリが実行されると正常に表示されます。

あなたが行っているようなビュー階層をトラバースすることは非常に珍しいことです。

関連する問題