5以降ではなくiOS4.3のUITabBar選択インジケーターを非表示にする方法
iOS4.3でUITabBarコントローラーの選択インジケーターを非表示にする必要があります。
このコードを試してください:
// 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.
}
それが役に立てば幸い!:)
それは不可能ですが、このトリックを試すことができます。
コントローラ(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];
}