我有通过故事板创建的标签控制器,带有自定义实现(简单的按钮和标签)和隐藏的默认栏。这一切都像预期的那样工作,并且可以在各种视图中导航。然而,在我的几个视图中,我需要使用UIScrollView,但希望选项卡栏控件移动到滚动视图的底部,您必须滚动到底部才能访问它们。我如何实现这样的配置?我使用的是XCode 4.3、ARC和故事板。
发布于 2012-06-19 07:26:29
您必须创建自己的包含选项卡的UIView实现,并将其放在UIScrollView的底部。
UITabBarController必须是窗口的根目录。换句话说,UITabBarController中的UIViewController可以包含UIScrollView,但不能将UITabBarController放在另一个UIViewController中(或放在UIScrollView中)。
从UITabBarController Class Reference
部署选项卡栏界面时,必须将此视图安装为窗口的根目录。与其他视图控制器不同,选项卡栏界面永远不应该安装为另一个视图控制器的子级。
发布于 2012-06-19 08:07:44
@MichaelFrederick已经为您的问题提供了正确的技术答案。我现在将给你一些更高层次的设计反馈。
请不要这样做。
你所描述的听起来令人难以置信的困惑。UITabBar的一个目的是向用户提供关于他们所处的“模式”的上下文。通过隐藏它,您拒绝了用户此上下文信息。
这也意味着,如果用户想要快速切换模式(选项卡),您将强制它们滚动。
如果您绝对需要滚动视图的最大屏幕空间(例如,大图像),请考虑提供一个模式视图控制器。这给了你想要的东西,但没有任何混乱的子类化,定制标签(总是行为不太正确),或可用性问题。
发布于 2012-06-19 08:26:24
我完全同意Conrad和Michael的观点,除了我不认为你需要创建自己的自定义标签栏之外,一切都是正确的。您应该能够在不使用UITabBarController的情况下直接使用UITabBar。
除了阅读文档之外,我不会给您更多关于如何做到这一点的提示,因为Conrad是绝对正确的。这是非常糟糕的设计。
https://stackoverflow.com/questions/11092183
复制相似问题