1

UITabBarItem が選択されたときに、強調表示された状態の画像を変更できるようにしたいですか? これをサブクラス化してアクセスすることは可能ですか? または、独自のナビゲーション コードをロールする必要がありますか?

-> 編集開始 以前に探していたものを明確にできませんでした。デバイスが UITabBar の選択された状態/画像に追加する半透明の白いオーバーレイ参照を探しています。画像参照!http://solomon71.com/images/UITabBarItem.png

4

2 に答える 2

2

独自の強調表示された画像を設定するための文書化された、またはサポートされている方法はありません。そうは言っても、2.2では、UITabBarItemをサブクラス化し、を実装することでそれを行うことができます-[UIImage *)selectedImage

厳密に言えば、selectedImageは予約済みのメソッド名ではないため(実際には誰かが自分で使用するのにかなり合理的な名前であるため)、プライベートAPIを呼び出していません。そうは言っても、これは意図されたものではなく、将来のリリースでいつでも壊れる可能性があると確信しています。これが3.xですでに壊れていても、私はショックを受けません(これを行うものは出荷したことがなく、クライアントのために実験しただけです)。

于 2009-11-08T22:28:28.433 に答える
1

これを試してください。

選択したtabbatitem画像を次のように変更しました-

タブバーコントローラーのデリゲートメソッドで

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

{
    if([tabBarController selectedIndex] == 0)
    {
        [viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];
    }    
}

これにより、イメージを変更できます。

または、View Controller の init(または ViewWillAppear) メソッドで直接使用することもできます。

        [viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];
于 2013-02-28T10:52:58.663 に答える