【问题标题】:UITabBar height in iOS 5iOS 5 中的 UITabBar 高度
【发布时间】:2012-05-24 16:51:55
【问题描述】:

随着 iOS 5 中新的自定义 API,是否可以增加 UITabBar 的高度?如果不是,如果我想针对 iOS 5,有哪些开源选项? 谢谢

【问题讨论】:

    标签: objective-c ios cocoa-touch


    【解决方案1】:

    我自定义UITabBarController的tabbar的方式是先自定义UITabBarController本身。

    UITabBarcontroller 里面有两个子视图。一个 UITransitionView 和一个 UITabBar。 UITransitionView 是屏幕上半部分放置视图控制器的区域。

    为了自定义UITabbar的高度,还需要编辑UITransitionView的frame。所以,例如,如果你想改变高度,你可以这样做;

    [[tabbarController.view.subviews objectAtIndex:0] setFrame:CGRectMake(0, 0, 320, 440)];
    [tabbarController.tabBar setFrame:CGRectMake(0, 440, 320, 50)];
    

    这将创建一个 50 px 高度的标签栏,(默认为 48 px)

    【讨论】:

      【解决方案2】:

      你可以写一个UItabbar的类别

      这里是代码:

      .h 文件:

      #import <UIKit/UIKit.h>
      
      @interface UITabBar (NewSize)
      - (CGSize)sizeThatFits:(CGSize)size;
      @end
      

      .m 文件:

      #import "UITabBar+NewSize.h"
      
      @implementation UITabBar (NewSize)
      - (CGSize)sizeThatFits:(CGSize)size {
          CGSize newSize = CGSizeMake(size.width,44);
          return newSize;
      }
      @end
      

      然后

      #import "UITabBar+NewSize.h"
      
      self.tabBarController = [[UITabBarController alloc] init];
      [self.tabBarController.tabBar sizeThatFits:CGSizeMake(320, 44)];
      self.tabBarController.tabBar.shadowImage = [[UIImage alloc]init];  //delete the default tabbar shadow!
      

      【讨论】:

        【解决方案3】:

        UITabBar 无法做到这一点。我建议你创建自己的UIToolBar,让它看起来像一个tabBar,你可以添加UIButtons,让它看起来像tabBarItems

        它将看起来像tabBar,并为您提供了很大的自定义空间,您还可以向其添加超过 5 个选项卡并在按钮之间实现“滚动”动画。 :)

        【讨论】:

          【解决方案4】:

          我建议BCTabBarController。我在我的一个项目中使用了它,效果很好。不过,您仍然需要对其进行自定义。

          【讨论】:

            【解决方案5】:

            使用 UIAppearance 代理是不可能的

            我推荐的方法是在 UIViewController 中使用容器 ViewController 方法(它位于实现容器视图控制器的标题下)。 Apple 的文档基本上告诉你如何自己动手。

            【讨论】:

              猜你喜欢
              • 2011-03-07
              • 2014-05-27
              • 2014-10-22
              • 1970-01-01
              • 1970-01-01
              • 2014-08-15
              • 1970-01-01
              • 1970-01-01
              • 2012-09-19
              相关资源
              最近更新 更多