我正在制作一个选项卡栏应用程序,不仅要在底部使用自定义栏,而且还希望能够在用户处于纵向或横向模式时更改按钮的功能。
例如,用户垂直握着iphone = 3个选项卡(a,b,c),但是用户将手机侧翻,选项卡栏现在填充了2个选项卡(d,e),这些选项卡在上/下对齐屏幕左侧,以便用户可以阅读它们。
我已经研究了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/