1

iOS 5以降、AppleはオブジェクトUITabBarItems内をカスタマイズするためのAPIを提供しました。UITabBar私は特に次のセレクターを参照しています:

setFinishedSelectedImage:withFinishedUnselectedImage:

すべて通常のボタンでうまく機能しますが、[その他]ボタンを他のボタンのスタイルに合わせてカスタマイズすることはできないようです。これは私がしていることです:

tabBarController.viewControllers = tabBarControllerArray;
    tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];
    UITabBarItem *more = tabBarController.moreNavigationController.tabBarItem;
     if ([more respondsToSelector:@selector(setFinishedSelectedImage:withFinishedUnselectedImage:)]){
        [more setFinishedSelectedImage:[UIImage imageNamed:@"BarIcon-More.png"]
           withFinishedUnselectedImage:[UIImage imageNamed:@"BarIcon-More.png"]
         ];
    } else {
        more.image = [UIImage imageNamed:@"BarIcon-More.png"];
    }

結果は次のようになりますが、カスタムのMore画像は取得されません。

非アクティブなその他のボタン 醜いアクティブなその他のボタン

moreボタンを置き換えるための多くのハックを見てきましたが、これを正しく行うためのより良い方法が必要ですか?

4

1 に答える 1

8

解決策はばかげていた。

は読み取り専用であると想定しUITabBarItemsましたが、そうではありませんでした。moreNavigationControllerしたがって、単に次のことを行います。

tabBarController.moreNavigationController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"More" image:[UIImage imageNamed:@"BarIcon-More.png"] tag:0];

そして、上記と同じカスタマイズコードが機能します。

于 2012-08-28T20:02:40.107 に答える