【问题标题】:iPhone - App with tab bar controller - showing gap at topiPhone - 带有标签栏控制器的应用程序 - 在顶部显示间隙
【发布时间】:2011-12-05 06:56:51
【问题描述】:

我有一个接受用户名和密码的登录视图。成功验证后,我将展示一个视图控制器,该控制器具有带有 3 个选项卡的选项卡栏视图 (IBOutlet)。每个标签栏视图控制器都有导航控制器(但在任何视图控制器中都没有表格视图)。 Usign xib,我添加了标签栏控制器对象,然后在标签栏树下添加了导航控制器,并相应地添加了视图控制器到 3 个导航控制器。 身份验证成功后,我正在调用 [self presentViewController:myViewController animated:YES] 这就是它的显示方式。

在myViewController的viewDidLoad中,我添加标签栏如下:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.tabBarController.view];  
}

为什么在导航栏上方和状态栏下方看到间隙。由于这个间隙,底部的标签栏正在被剪切......

【问题讨论】:

  • 我不确定您在做什么,但听起来好像您的设置有误。不要使用带有 TabBar 的 ViewController,而是使用 Tab Bar 控制器,看看这是否有帮助:)
  • 如何创建一个新的标签栏控制器并关联一个类?

标签: iphone ios uitabbarcontroller


【解决方案1】:

这是一个常见的问题,tabBarController 和其他控制器默认情况下在其框架坐标中的状态栏来解决这个问题,只需将视图的边界设置为 tabBarController 视图的框架。

tabBarController.view.frame = self.view.bounds;

【讨论】:

    【解决方案2】:

    如果self.view.bounds 的位置不准确。所以关注对我很有帮助。

    self.view.frame = [[UIScreen mainScreen] bounds];
    CGRect cgp = self.view.bounds;
    [self.tabBarController.view setFrame:cgp];
    

    在另一种情况下(iOS 7)tabBar 隐藏在屏幕底部。在这种情况下

    self.view.frame = [[UIScreen mainScreen] bounds];
    CGRect cgp = self.view.bounds;
    if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
        cgp.size.height = cgp.size.height-90;
    }
    [self.tabBarController.view setFrame:cgp];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      相关资源
      最近更新 更多