【问题标题】:Pushing a View Controller moves its view up by 20 pixels in iOS 6?在 iOS 6 中,推动视图控制器将其视图向上移动 20 像素?
【发布时间】:2014-09-17 06:07:17
【问题描述】:

我有一个导航控制器,我通过以下方式添加到 UIViewController 上

UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:self.homeViewController];

_centerViewNavigaionController = navController;

if (bIsDeviceOSVersion7) {
    _centerViewNavigaionController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
}
else
{
 _centerViewNavigaionController.view.frame = CGRectMake(0, -20, self.view.frame.size.width, self.view.frame.size.height+20);
}

[self.view addSubview:navController.view];
[self addChildViewController:navController];

它在 iOS 7 中工作正常,但在 iOS6 中 - HomeViewController(即此导航控制器的 RootViewController)加载正常。但是当我将一个新的视图控制器推到 HomeViewController 上时,即 RootViewController 新的视图框架仅在第一次向上移动 20 像素。下次当它推动它工作正常。我查看了堆栈溢出但无法解决此问题。我该如何解决这个问题?

【问题讨论】:

  • set detla property of view ie y = 20 in iOS 6 and y = 0 in iOS7

标签: ios iphone ios6 uinavigationcontroller


【解决方案1】:

而不是这样做

_centerViewNavigaionController.view.frame = CGRectMake(0, -20, self.view.frame.size.width, self.view.frame.size.height+20);

您可以通过 Interface Builder 为 viewcontroller 对象下的即时视图/视图设置 delta 属性。否则你必须使用 Autolayout 来避免这样的事情。

【讨论】:

    猜你喜欢
    • 2014-06-18
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 2011-01-14
    • 2012-01-06
    • 1970-01-01
    相关资源
    最近更新 更多