在UITabbar项之间插入空格/视图/图像

时间:2012-05-18 14:19:22

标签: iphone ios ipad uitabbar

将应用程序移植到ipad并在横向中,tabbar看起来有点稀疏,因此想要分离标签(其中6个)并在它们之间插入图像。

我目前使用的是TabBarKit,它可以完成UITabbar所做的一切,但这是我坚持不懈的事情。无法找到任何插入空格的方法,无论是图片还是UIView(背景已经是图片)?

到目前为止我所做的是以编程方式添加几个额外的tabbar项目,并将图像设置为nil并删除用户交互。 (我在另一个stackoverflow线程上找到了这个解决方案,但它不是一个完美的解决方案)。

我知道UIToolbar有一个灵活的空间项目,但当我尝试将其用作tab bar item时,它会导致一些问题。

因此,如果有人对如何在标签栏中插入视图,空白空间等有任何想法,我们将不胜感激。

更新

开始赏金,因为我很想知道是否可以这样做。 ipad横向视图有足够的空间,我被要求将图像放在中间分割按钮。

如果应用被拒绝,那么傻瓜我就更多了。任何例子,样品,建议,建议都非常感谢

图片示例: enter image description here

2 个答案:

答案 0 :(得分:5)

我同意上面的答案,这可能不是一个好主意,但从技术上说,这是可能的。

自定义标签栏的技巧是隐藏默认标签栏并将您自己的自定义视图放在该空间中。然后,您可以使用按钮,图像填充该视图,无论您想要什么。以下是我处理此问题的方法。

我在AppDelegate中设置了我的UITabbarController:

UITabBarController tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, 
                                             viewController2, 
                                             viewController3,
                                             nil];
//add the custom tabbarcontroller
CustomTabBar customTabBar = [[CustomTabBar alloc] initWithFrame:CGRectMake(0, self.window.frame.size.height - 60, self.window.frame.size.width, 62)];
    [self.tabBarController.view addSubview:_customTabBar];

tabBarController.tabBar.hidden = YES;
self.window.rootViewController = self.tabBarController;

CustomTabBar是UIView的子类,我在其中放置了自己的自定义按钮。单击此类中的按钮时,我会进行如下调用:

-(void)firstBtnClicked:(id)sender {
    ((UIButton*)sender).enabled = NO;
    AppDelegate *delegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
    delegate.tabBarController.selectedIndex = 0;
}

答案 1 :(得分:4)

我会劝阻你不要弄乱苹果公司经过深思熟虑的标签栏间距。不要这样做 - 你是以糟糕的方式攻击本地控制,这将产生后果。此外,您还必须处理横向与纵向模式中的不同间距和逻辑。不要不必要地复杂化,按设计使用它或重新考虑标签栏是否是适当的控件。

引自Apple's guidelines

  

在iPad上,在每个方向上显示相同的标签以增加   您应用的视觉稳定性。在肖像中,推荐七个标签   适合整个屏幕的宽度。在横向方向,你   应该沿着屏幕的宽度居中相同的标签。这个   指南也适用于拆分视图中标签栏的使用   窗格或弹出窗口。例如,如果您在弹出框中使用标签栏   肖像,它适用于在a的左窗格中显示相同的选项卡   在景观中分割视图。