视图按下约20px,但在旋转屏幕时固定

时间:2014-04-11 14:07:54

标签: ios objective-c uiviewcontroller

我有一个从两个不同的地方调用的viewcontroller(Nib)。当我从一个地方调用它时,一切看起来都很好但是从另一个地方看起来似乎总是有一个20px(看起来足够状态栏)偏移顶部..

如果我旋转设备,它会消失,它看起来很好..我从昨天开始对此进行故障排除,没有运气 - 据我所知,当我加载屏幕时,我没有做任何不同的事情.. < / p>

我不确定要粘贴哪些代码,因为从两个地方以相同的方式调用它们,我正在寻找任何想法 - 即使它不是一个答案,因为我似乎没有想法。

截图,

2 个答案:

答案 0 :(得分:1)

您是否尝试在edgesForExtendedLayout设置viewDidLoad

if ( IS_OS_7_OR_LATER && [self respondsToSelector:@selector(edgesForExtendedLayout)] ) {
    self.edgesForExtendedLayout = UIRectEdgeNone;
}

编辑:如果您想了解有关如何修复iOS 7的更多信息,请点击Apple的iOS 7 Transition Guide

答案 1 :(得分:0)

我希望这些问题可以帮助我们和您找出问题:

  1. 您是使用“界面”构建器还是以编程方式调用VC?

  2. 您是否添加了任何约束?

  3. 我最好的猜测是你尝试加载VC:

    - (void)viewWillLayoutSubviews
    

    而不是

    - (void)viewDidLoad
    

    这个建议的原因是在viewDidLoad中没有正确加载屏幕边界,您可以通过打印self.view.bounds.width&amp; self.view.bounds.height。在viewDidLoad中,它们未正确设置。这可能导致许多后来的问题。这只是一个疯狂的猜测。

    希望它有所帮助。