0

StackOverflow に関するいくつかの質問を検索した結果、カスタム UITabBar を作成するための主要なプロジェクトはBCTabBarController. その説明には次のように書かれています。

標準の UITabBarController の使用には、次のようないくつかの問題があります。

特にランドスケープモードでは高すぎる

高さが UIToolbar と一致しません

プライベート API を使用しないとカスタマイズできない

それにもかかわらず、私はGitHub でこの奇妙なプロジェクトを見つけました。ここでは、各タブの実装で標準を使用するチュートリアルがあり、機能しています (奇妙なことに、機能します)。UITabBarControllerUIButtons

タブの代わりにカスタムを作成するのが間違っているとしたら、どうなるのだろうと思っていましUITabBarControllerた。UIButtonsこれの実装は次のようになります。

- (void)viewDidAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [self hideTabBar];
    [self addCustomElements];
}

- (void)hideTabBar
{
    for(UIView *view in self.view.subviews)
    {
        if([view isKindOfClass:[UITabBar class]])
        {
            view.hidden = YES;
            break;
        }
    }
}

-(void)addCustomElements
{
    // Initialise our two images
    UIImage *btnImage = [UIImage imageNamed:@"NavBar_01.png"];
    UIImage *btnImageSelected = [UIImage imageNamed:@"NavBar_01_s.png"];

    self.btn1 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
    btn1.frame = CGRectMake(0, 430, 80, 50); // Set the frame (size and position) of the button)
    [btn1 setBackgroundImage:btnImage forState:UIControlStateNormal]; // Set the image for the normal state of the button
    [btn1 setBackgroundImage:btnImageSelected forState:UIControlStateSelected]; // Set the image for the selected state of the button
    btn1.backgroundColor = [UIColor yellowColor];
    [btn1 setTag:0]; // Assign the button a "tag" so when our "click" event is called we know which button was pressed.
    [btn1 setSelected:true]; // Set this button as selected (we will select the others to false as we only want Tab 1 to be selected initially

私のプロジェクトでは、iOS 5.1 以降を使用し、ストーリーボードや XIB は使用しません。ありがとう!

4

1 に答える 1

1

iOS 5.0 以降、画面下部の のUITabBarController行を使用して独自に作成することは問題ではなくなりました。UIButtons

viewWill/viewDid以前のバージョンの iOS SDK では、メソッドの転送を自分で管理する必要があったため、少し危険でした。

Class Reference の「 Implementing a Container View Controller」UIViewControllerセクションを参照すると、必要なものがすべて見つかります。UIViewController Class Reference

必要なものを正確に説明する特集記事もあります:カスタム コンテナー ビュー コントローラーの作成

これが役立つことを願って、

于 2013-03-04T13:20:56.867 に答える