6

将应用程序移植到 ipad 和 Landscape 中,选项卡栏看起来有点稀疏,因此有了分离选项卡(其中 6 个)并在它们之间插入图像的想法。

我目前使用TabBarKit它,它可以做所有事情,而且做得更多UITabbar,但这是我一直坚持的事情。找不到任何插入空白空间的方法,无论是图像还是UIView(背景已经是图像)?

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

我知道UIToolbar有一个灵活的空间项目,但是当我尝试使用它时,tab bar item它引起了一些问题。

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

更新

开始赏金,因为我很好奇这是否可以完成。ipad 横向视图有很多空间,我被要求在中间放置一个图像来分割按钮。

如果应用程序被拒绝,那就更愚弄我了。非常感谢任何示例、示例、建议、建议

图片示例: 在此处输入图像描述

4

2 回答 2

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;
}
于 2012-05-29T19:15:11.410 回答
4

我会劝阻您不要弄乱 Apple 精心设计的标签栏间距。不要这样做 - 你正在以一种糟糕的方式破解本机控件,这将在未来产生后果。此外,您必须在横向和纵向模式下处理不同的间距和逻辑。不要不必要地使事情复杂化,按设计使用它或重新考虑标签栏是否是合适的控件。

引用Apple 的指南

在 iPad 上,在每个方向显示相同的选项卡,以提高应用程序的视觉稳定性。在纵向模式下,推荐的七个选项卡非常适合整个屏幕的宽度。在横向方向中,您应该将相同的选项卡沿屏幕宽度居中。本指南也适用于拆分视图窗格或弹出框内标签栏的使用。例如,如果您在纵向弹出窗口中使用选项卡栏,则可以在横向拆分视图的左窗格中显示相同的选项卡。

于 2012-05-18T14:29:08.910 回答