TabBarController - 第一个视图偏移20px

时间:2014-02-12 10:21:09

标签: ios uinavigationcontroller uiimageview uitabbarcontroller

这让我发疯了。我有一个标签栏控制器,它被推入导航控制器堆栈。

标签栏的第一个视图控制器有一个图像,它有两个约束:

  • 0到顶部布局指南
  • 0到底部布局指南

但是当按下标签栏控制器并且第一次出现第一个视图控制器时,上述图像无特殊原因会偏移20个像素。

3 个答案:

答案 0 :(得分:2)

我通过执行以下操作修复了它:

- (void)viewDidLayoutSubviews {
    //I need to do this, otherwise the scrollview is offset by 20 pixels when first displayed (I HAVE NO IDEA WHY....)
    if (self.scrollView.frame.origin.y == 20) {
        [self.scrollView setFrame:CGRectMake(0, 0, self.scrollView.frame.size.width, self.scrollView.frame.size.height + 20)];
    }
}

虽然我不知道为什么它只会在第一次显示时搞砸......

答案 1 :(得分:1)

不确定,但你可以尝试一下。将此行放在导航控制器的第一个视图控制器的viewDidLoad中。

    self.edgesForExtendedLayout = UIRectEdgeNone;

答案 2 :(得分:-1)

我有完全相同的问题。 tabview控制器第一个视图中的标签忽略顶部的8px边距。当该视图第一次加载时,空间超过20,但当我切换到第二个选项卡并返回时,问题就消失了。

首次使用错误的空格打开视图时的模拟器

http://i.stack.imgur.com/VKxMs.jpg

模拟器,当我切换到第二个标签并返回,然后使用正确的空格

http://i.stack.imgur.com/teUyl.jpg