1

プロジェクトに UITabbarController のサブクラスを追加して、カスタム UITabbarController を作成したいと考えています。

カスタム タブバーには、選択した状態と選択していない状態のカスタム アイコンと、追加したいタブの背景が含まれています。

次のように、デリゲートを .h ファイルに追加しました。

#import <UIKit/UIKit.h>

@interface CustomTabViewController : UITabBarController <UITabBarDelegate,UITabBarControllerDelegate>
@property (strong, nonatomic) UIWindow *window;

@end

そして、viewDidLoad メソッドの実装ファイルで、使用したいすべての画像を宣言しました。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UITabBarController *tabController = [[UITabBarController alloc] init];

    UIImage *tabBackground = [[UIImage imageNamed:@"TabBar@2x.png"]
                              resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 320, 60)];
    [[UITabBar appearance] setBackgroundImage:tabBackground];

    self.window.rootViewController = tabController;

    UIImage *selectedImage = [UIImage imageNamed:@"meinGuthabenLogoSelected@2x.png"];
    UIImage *unSelectedImage = [UIImage imageNamed:@"meinGuthabenLogoUnselected@2x.png"];
    UITabBar *tabBar = (UITabBar *)tabController.tabBar;
    UITabBarItem *item1 = [tabBar.items objectAtIndex:0];
    [item1 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage];

    selectedImage = [UIImage imageNamed:@"aufladenSelected@2x.png"];
    unSelectedImage = [UIImage imageNamed:@"aufladenUnselected@2x.png"];
    UITabBarItem *item2 = [tabBar.items objectAtIndex:1];
    [item2 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage];

    selectedImage = [UIImage imageNamed:@"bezahlOptionenSelected@2x.png"];
    unSelectedImage = [UIImage imageNamed:@"bezahlOptionenUnselected@2x.png"];
    UITabBarItem *item3 = [tabBar.items objectAtIndex:2];
    [item3 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage];

    selectedImage = [UIImage imageNamed:@"meinKontoSelected@2x.png"];
    unSelectedImage = [UIImage imageNamed:@"meinKontoUnselected@2x.png"];
    UITabBarItem *item4 = [tabBar.items objectAtIndex:3];
    [item4 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage];

}

しかし、アプリを実行しても、デフォルトのタブ バー コントローラーに変更はありません。また、そのクラスを作成したカスタム クラスに設定しました。

ここで正しいアプローチを使用しているかどうか、または実装する必要がある他の方法があるかどうかを尋ねたかったのですか?

前もって感謝します!

花崗岩

4

1 に答える 1

1

次のように、tabBar のフレームも設定する必要があります。

CGRect smallFrame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width-300, frame.size.height-100);

tabController = [[UITabBarController alloc] init];

tabController.view.frame = smallFrame;
于 2013-10-30T09:37:54.930 に答える