0

簡単そうに見えるを使用してタブバーアイテムの画像を変更したいのですが、self.tabBarItem.image = [UIImage imageNamed:@"home_icon.png"];実行できません。注:ファイル名をfirstからhome_iconに置き換えているだけです。コードは「first」という名前で機能します。

詳細:標準のタブ付きアプリケーションから始めて、この1行のコードのみを変更しました。次に、Xcodeは64x64イメージをロードします。プロジェクトにhome_icon.pngファイルを配置し、30x30pngファイルであることを確認しました。ドキュメントによると、「このメソッドは、指定された名前の画像オブジェクトをシステムキャッシュで検索し、そのオブジェクトが存在する場合はそのオブジェクトを返します。一致する画像オブジェクトがまだキャッシュにない場合、このメソッドは指定されたファイルから画像データを読み込みます。 、それをキャッシュしてから、結果のオブジェクトを返します。」ここで別のファイルを簡単に参照できないのはなぜですか?ここで実際に何が参照されているのかわかりません。元の行はself.tabBarItem.image = [UIImage imageNamed:@"first"];、first.pngを参照するためです。

私が試したこと(これまでの回答を参照)

  • home_icon.pngの代わりにhome_iconを使用する
  • 使用するUIImage *img = [UIImage imageNamed:@"home.png"]; self.tabBarItem.image = img;
  • 2xファイルの追加
  • 出力コンソールを確認しています。エラーは記載されていません。(アプリは引き続き古いファイルを正常に参照します)。
  • ターゲットをチェックしています。ファイルがターゲットに追加されます
4

5 に答える 5

0

解決策は、png ファイルでアルファ チャネルのみを使用することでした。詳細については、 http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.htmlを参照してください。

于 2012-11-26T17:30:41.010 に答える
0

末尾の「.png」を削除します。

于 2012-11-26T13:48:13.400 に答える
0

[UIImage imageNamed:@"home.png"] が nil ではないことを確認しますか? コンソールにチェックイン

NSLog(@"%@", [UIImage imageNamed:@"home.png"]);

その場合は、イメージを Build Phases -> Copy Bundle Resources に追加してみてください

于 2012-11-26T14:15:13.233 に答える
0

以下のコードを試してください。

UIImage *img = [UIImage imageNamed:@"image.png"];
[[tabBarController.viewControllers objectAtIndex:tabImageIndex] tabBarItem].image=img;
于 2012-11-26T13:52:57.877 に答える
0

タブバーの背景を変更するには、次のコードを使用します。タブに応じて、さまざまな画像を追加できます。

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewControllers{
    NSUInteger index=[[tabBarController viewControllers] indexOfObject:viewControllers];

    switch (index) {
        case 0:
            [tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tab_act21.png"]];

            break;
        case 1:
            [tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tab_act22.png"]];
            break;
        case 2:
            [tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tab_act23.png"]];
            break;
        default:
            break;
    }

    return YES;
}

タブバー項目の画像のみを変更する場合は、次のコードを使用します。

self.tabbarcontroller.tabBarItem.image=[UIImage imageNamed:@"Someimage.png";
于 2012-11-26T13:54:40.470 に答える