3

5以降ではなくiOS4.3のUITabBar選択インジケーターを非表示にする方法

iOS4.3でUITabBarコントローラーの選択インジケーターを非表示にする必要があります。

4

2 に答える 2

5

このコードを試してください:

// iOS 5.0+
[self.tabBar setSelectionIndicatorImage:[[[UIImage alloc] init]autorelease]];


// for earlier versions

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    [self customizeTabBar];
}

- (void)customizeTabBar {
    NSString *imageName = [NSString stringWithFormat:@"tabBackground%i.png", tabBarCtrl.selectedIndex + 1];

    for(UIView *view in tabBarCtrl.tabBar.subviews) {  
         if([view isKindOfClass:[UIImageView class]]) {  
              [view removeFromSuperview];  
         }  
    }  
    UIImageView *background = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]] autorelease];
    [tabBarCtrl.tabBar insertSubview:background atIndex:0]; 
    [tabBarCtrl.tabBar bringSubviewToFront:background];
    //if needed, here must be adding UILabels with titles, I didn't need it.
} 

それが役に立てば幸い!:)

于 2012-06-05T23:52:07.253 に答える
1

それは不可能ですが、このトリックを試すことができます。

コントローラ(TabBarControllerアイテムに追加されるコントローラ)でtabBarItemenableをfalseに設定

[controller.tabBarItem setEnabled:NO];

TabBarControllerが表示されたら、tabBarItemにボタンを追加できます。この場合、ボタンは中央に追加されます(TabbarItemは5です)。

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

    UIImage *buttonImage = [UIImage imageNamed:@"1.png"]
    UIImage *highlightImage = [UIImage imageNamed:@"1_selected.png"]

    UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
    button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
    [button setBackgroundImage:buttonImage forState:UIControlStateNormal];
    [button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];
    [button addTarget:self action:@selector(centerCliked:) forControlEvents:UIControlEventTouchUpInside];

    CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
    if (heightDifference < 0)
        button.center = self.tabBar.center;
    else
    {
        CGPoint center = self.tabBar.center;
        center.y = center.y - heightDifference/2.0 + 2;
        button.center = center;
    }
    [self.view addSubview:button];
}


- (IBAction)centerClicked:(id)sender {
     [self setSelectedIndex:2];
}
于 2012-06-06T19:59:57.863 に答える