0

タブ付きアプリケーションを作成していますが、アイコンをタブに表示するのに問題があります。自分のコードを、本の外で取り組んだ以前の例と比較したところ、一致しているように見えますが、新しいアプリケーションのアイコンは空白の四角として表示されます。面倒な部分は省いて、関連するすべてのコードを含めようとしましたが、もっと見たい場合は、質問してください。必要に応じてさらに編集します。imageNamed:string とアイコン名の大文字と小文字が同じであることは既に確認済みです。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ... // initializers for ViewControllers 1-3, which are custom viewControllers
        // that have the tab properties set in (void)viewDidLoad
    globalUINavigationController = [[UINavigationController alloc] initWithNibName:
                                @"DemoTabbedFourthViewController" bundle:nil];
    globalUINavigationController.title = NSLocalizedString(@"Fourth", @"Fourth");
    globalUINavigationController.tabBarItem.image = [UIImage imageNamed:@"fourth.png"];

    UIViewController *viewController4 = [[DemoTabbedFourthViewController alloc] 
                    initWithNibName:@"DemoTabbedFourthViewController" bundle:nil];

    [globalUINavigationController pushViewController:viewController4 animated:YES];
    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2,
                                         viewController3, globalUINavigationController, nil];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
}

私は例として globalUINavigationController を使用しています。これを機能させることができれば、それに基づいて他のものを機能させることができるはずだからです。コードに関するご質問やご意見がございましたら、お知らせください。Objective C と iPhone アプリの開発は初めてなので、できる限りのサポートをします。

4

2 に答える 2

0

これは、画像が大きすぎるか、アイコンが正方形であることが原因です。つまり、XCode は画像をマスクとしてのみ取得します (つまり、色は関係ありません)。PNG 画像で、サイズが約 30x30 である必要があります。クラス参照から;

image アイテムのイメージ。nil の場合、画像は表示されません。タブ バーに表示される画像は、この画像から派生したものです。この画像が大きすぎてタブ バーに収まらない場合は、収まるように切り取られます。通常、タブ バー イメージのサイズは 30 x 30 ポイントです。ソース イメージのアルファ値を使用して、選択されていないイメージと選択されたイメージが作成されます。不透明な値は無視されます。

于 2012-07-26T16:13:24.100 に答える
0

問題は、UINavigationController を nib ファイルで初期化することだと思います。私は実際にこれを試したことはありません。最初に ViewController を初期化してから、これを初期化メッセージで NavigationController に追加する必要があります。また、ナビゲーション コントローラーではなく、コンテンツ ビュー コントローラーでタイトルを設定する必要があります。これは、ナビゲーション コントローラーが表示するタイトルを topViewController に要求するためです。

以下のコードはコンパイルしていないので、カンマの欠落などがあるかもしれませんが、意味がわかるはずです。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ... // initializers for ViewControllers 1-3, which are custom viewControllers
        // that have the tab properties set in (void)viewDidLoad
    UIViewController *viewController4 = [[DemoTabbedFourthViewController alloc] 
                initWithNibName:@"DemoTabbedFourthViewController" bundle:nil];

    globalUINavigationController = [[UINavigationController alloc] initWithRootViewController:viewController4];
    globalUINavigationController.tabBarItem.image = [UIImage imageNamed:@"fourth.png"];

    [globalUINavigationController pushViewController:viewController4 animated:YES];
    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2,
                                     viewController3, globalUINavigationController, nil];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
}

これで問題が解決しない場合は、アイコン ファイルが通常の画像である可能性があります。タブ バー項目には、画像のアルファ チャネルのみが使用されます。

//編集: この場合、この質問を見てください: UITabBarItem 画像は灰色のブロックとして表示されます

于 2012-07-26T16:18:24.853 に答える