iphone - iPhone 的自定义标签栏将标签纵向更改为横向

标签 iphone objective-c xcode uitabbarcontroller xcode4

我正在制作一个标签栏应用程序,我不仅想要底部的自定义栏,而且还希望能够在用户处于纵向或横向模式时更改按钮的内容。

例如,用户垂直握住 iphone = 3 个标签(a、b、c),但用户将手机翻转到一边,标签栏现在填充了 2 个标签(d、e),它们对齐/down 在屏幕左侧,以便用户可以阅读它们。

我研究了 UITabBarController 类的子类化,但感觉这样做无法实现我想要的。我想知道...

1) 我怎样才能做到这一点?

2) 在将应用程序推送到 App Store 时,制作我自己的标签栏会导致问题吗?

最佳答案

我认为,只要您的实现不会造成混淆并且不会“破坏”标准的标签栏行为,那么实现您所描述的内容就不会成为应用商店的问题。换句话说,如果它看起来像一个标准的 Apple 控件或类似,它应该以非常相似的方式运行,并且不会对熟悉标签栏的用户表现出“损坏”。 Apple 确实允许您在 UI 控件方面有一些回旋余地和创造力,前提是您要注意不要让用户感到困惑或烦扰。

至于你的实现,子类化 UITabBarController 不是一个很好的方法,我同意。要实现自定义标签栏,请借鉴 Apple 的书并编写一个 UIViewController 子类,它根据 UITabBarController 的工作方式实现您所描述的内容(但要避免以任何方式实际使用 Apple 的 UITabBarController)。

您的 CustomTabBarController(为方便起见,我们这样调用它)基本上应该采用一组 UIViewController、图标和横向和纵向模式项目的描述文本。您需要检测 CustomTabBarController 中的旋转事件并将它们传递给当前显示的实际 UIViewController —— 并且还会有其他连接,例如传递 viewDidAppear 消息等。

灵感和提示的一个很好来源可能是查看其他人对 UIViewController 聚合器的实现。例如:

http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad

关于iphone - iPhone 的自定义标签栏将标签纵向更改为横向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5292782/

相关文章:

iphone - 如何使用 iOS 和 Objective-C/Xcode 加速 TDD 流程

iphone - 适用于 iOS 应用程序的免费热图软件

iphone - iOS UILocalNotification - 当应用程序在后台运行并且在通知时单击图标时,不会触发委托(delegate)方法

iOS:iPhone 11 Pro 上的 torch 级别

ios - 除了一个 View Controller 外,在 iO 中支持纵向

ios - 在 Swift 中迭代 JavaUtilList

objective-c - 通用应用程序 : Should I extract shared Views to their own storyboard

c++ - 如何让 LLDB 输出图像?

ios - 错误 ITMS-90174 : “Missing Provisioning Profile - Apps must contain a provisioning profile in a file named embedded.mobileprovision.”

ios - XCode 6.0.1 行为 : Huge Delays?