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

Posted

技术标签:

【中文标题】在 UITabbar 项之间插入空格/视图/图像【英文标题】:Inserting a space/view/image between UITabbar Items 【发布时间】:2012-05-18 14:19:21 【问题描述】:

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

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

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

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

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

更新

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

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

图片示例:

【问题讨论】:

您的问题太难理解了,请贴一张tabbar的图片,方便大家回复。 图片已上传,感谢小伙伴的建议 我不知道这是否可行,但您可以安排按钮看起来像标签栏并使用图像管理按钮事件 我不太清楚你的意思,你是说用图片替换按钮?能不能说的详细一点 看看你上面展示的设计是否可以在 TabBar 中使用,那么我不知道怎么做,但如果你想让它相同,那么你可以使用 6 个按钮和 1 个图像。设置此图像之间的图像。使图像在标签栏中看起来像选中和未选中,并根据协调设置整个背景图像。并像标签栏控制器一样按下手柄按钮。明白了吗? 【参考方案1】:

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

自定义标签栏的诀窍是隐藏默认标签栏并将您自己的自定义视图放置在该空间中。然后,您可以使用按钮、图像以及您想要的任何内容填充该视图。以下是我的处理方式。

我在 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;

【讨论】:

【参考方案2】:

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

引用Apple's guidelines:

在 iPad 上,在每个方向显示相同的选项卡以增加 应用程序的视觉稳定性。在纵向,推荐的七个标签 非常适合整个屏幕的宽度。在横向时,您 应将相同的选项卡沿屏幕宽度居中。这 指南也适用于拆分视图中标签栏的使用 窗格或弹出框。例如,如果您在弹出窗口中使用标签栏 肖像,它可以很好地在左侧窗格中显示相同的选项卡 横向拆分视图。

【讨论】:

感谢您的回复。该应用程序在 iPad 上被锁定为横向模式,而 iPhone 版本被锁定为纵向。只是觉得他们之间的形象会很好看,给应用一个开放的感觉 在其中包含额外的图像会使您的应用程序用户感到困惑。不要这样做。 我给了你赏金,因为我相信你是对的,但这是我被要求做的事情。为信息干杯

以上是关于在 UITabbar 项之间插入空格/视图/图像的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式使用 UITabBar

切换时如何在UITabBar视图之间传递数据?

IOS:UITabbar 项目单击一次又一次,它正在减少IOS 7 中的UITabbar 按钮项目大小

如何使 UITabbar 透明以便超级视图的背景图像可见?

UITabBar 自定义背景图像应用于一个视图控制器而不是 AppDelegate

UITabBar 获取选中项