1

我在iOS7使用Storyboards和时遇到了一个非常奇怪的问题ios simulator

我尝试iOS7通过将 设置iOS 6/7 deltas为适应界面生成器中的状态栏来更新旧项目,以适应我在情节提要中定义的视图。该视图被设置为以编程方式创建UINavigationController的根视图。

当我这样做时,iOS7 iPad 模拟器会显示正确的 UI - 我的视图显示在导航栏下方 - 但是,当我在真正的 iOS7 iPad上运行完全相同的代码时,它显示的视图太低了 20 像素;事实上,如果我完全不改变它在设备上显示的增量。

我在这里不明白的是为什么模拟器和设备在这种情况下表现不同- 有没有人遇到过同样的问题?对于我的其他项目,我没有这个问题,所以我认为是故事板或其他一些设置导致了这种奇怪的行为。

更新:

有趣的是,在我在新的 MacBook 上重新安装所有东西后,问题就消失了(也可能是最新的 Xcode 更新......)。

4

1 回答 1

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

我确实将此修复应用于视图控制器。在出现此错误的 ViewControllers 的每个 viewDidLoad 中。此外,您还必须取出您在 xib 或 Storyboard 中设置的 Delta。这个“修复”的最终结果将是......在模拟器和设备上,一切看起来都很好,而且准确无误。(至少在我的情况下是这样)。让 xib 或故事板视图保持为“以 iOS 6.1 及更早版本查看”,这样它们看起来也不错,您仍然可以使用它们。此修复的唯一问题是:如果您使用助理编辑器并查看 xib 或情节提要在 iOS 7 下的外观,它看起来并不好......某些视图将是正确的。希望能帮助到你。

于 2014-01-16T11:14:51.390 回答