0

我通过故事板创建了带有隐藏默认栏的自定义实现(简单按钮和标签)的选项卡控制器。这一切都按预期工作,并且可以浏览各种视图。然而,在我的几个视图中,我需要使用 UIScrollView 但希望标签栏控件移动到滚动视图的底部,您必须滚动到底部才能访问它们。我将如何实现这样的配置?我正在使用 XCode 4.3、ARC 和 Storyboards。

4

3 回答 3

4

@MichaelFrederick 为您的问题提供了正确的技术答案。我现在要给你一些更高层次的设计反馈。

请不要这样做。

你所描述的听起来令人难以置信的混乱。的一个目的UITabBar是向用户提供有关他们所处“模式”的上下文。通过隐藏它,您拒绝用户获得此上下文信息。

这也意味着,如果用户想要快速切换模式(选项卡),您将强制他们滚动。

如果您绝对需要滚动视图的最大屏幕空间(例如,大图像),请考虑使用模态视图控制器。这为您提供了您想要的东西,但这样做没有任何混乱的子类化、自定义选项卡(其行为总是不太正确)或可用性问题。

于 2012-06-19T00:07:43.867 回答
1

您必须创建自己的包含选项卡的 UIView 实现,并将其放在 UIScrollView 的底部。

UITabBarController 必须是窗口的根。换句话说,UITabBarController 内的 UIViewController 可以包含 UIScrollView,但不能将 UITabBarController 放在另一个 UIViewController 内(或 UIScrollView 内)。

UITabBarController 类参考

部署选项卡栏界面时,您必须将此视图安装为窗口的根目录。与其他视图控制器不同,标签栏界面永远不应安装为另一个视图控制器的子级。

于 2012-06-18T23:26:29.310 回答
0

我完全同意康拉德的观点,迈克尔在所有方面都是正确的,除了我认为您不需要创建自己的自定义标签栏。您应该可以UITabBar直接使用而无需使用UITabBarController.

除了阅读文档之外,我不会再给你任何关于如何做到这一点的提示,因为康拉德是绝对正确的。这是非常糟糕的设计。

于 2012-06-19T00:26:23.640 回答