[英]Custom Tab Bar for iPhone changes tabs portrait to landscape orientation
我正在制作一个标签栏应用程序,我不仅想要底部的自定义栏,还想要在用户处于纵向或横向模式时更改按钮的功能。
例如,用户垂直握住iphone = 3个标签(a,b,c),但是用户侧翻电话,标签栏现在填充了2个标签(d,e),这些标签在向上/向下对齐屏幕的左侧,以便用户可以阅读它们。
我已经研究了UITabBarController类的子类化,但感觉就像我想要的那样是不可能的。 我想知道...
1)我怎样才能做到这一点?
2)在将应用程序推送到App Store时,我自己的标签栏会出现问题吗?
我认为实现您描述的内容不应该是应用商店的问题,只要您的实现不会令人困惑并且不会“破坏”标准的tabbar行为。 换句话说,如果它看起来像标准的Apple控件或类似,它应该以非常类似的方式运行,而不是对熟悉标签栏的用户“破坏”。 如果你有点小心不要混淆或烦扰用户,苹果确实会让你在UI控件上有一些余地和创造力。
至于你的实现,子类化UITabBarController不是一个非常好的方法,我同意。 要实现自定义tabbar,请从Apple的书中删除一些内容,编写一个UIViewController子类,根据UITabBarController的工作原理实现所描述的内容(但避免以任何方式实际使用Apple的UITabBarController)。
您的CustomTabBarController(为方便起见,我们称之为)基本上应该为横向和纵向模式项目收集UIViewControllers,图标和描述文本的集合。 您需要在CustomTabBarController中检测旋转事件并将它们传递给当前显示的实际UIViewController - 并且还会有其他连线,例如传递viewDidAppear消息等。
一个很好的灵感和提示可能会关注其他人对UIViewController聚合器的实现。 例如:
http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad
很棒的建议! 不幸的是,我不相信自己能够正确地实现所有这些......我只是在目标中编码 - c为6mo。 现在。 我找到并成功使用的内容我认为其他人可能会发现有用的是以下链接:
http://idevrecipes.com/2010/12/17/twitter-app-tab-bar-animation/
这里的人使用他们自己的自定义标签栏,这本身就很好。 这允许我动态编辑条本身上存在的按钮数量,以及与这些按钮对应的图像和标签栏本身的高度。 另外,我使用了包含我的标签栏的View Controller Class的通知监听器来告诉用户何时翻转iphone。 在翻转时,我以不同方式设置标签栏,并使用新项目/视图控制器重新加载。
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:UIDeviceOrientationDidChangeNotification object:nil];
为了解决方向差异,我只需将标签栏上显示的图像翻转90度,无论其翻转方式如何,因此我可以通过4种不同的方式设置条形图上的项目。
谢谢你的建议。 如果我有点勇敢,我可能会尝试自己编写自定义标签栏!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.