iOS7
使用Storyboards
和ios simulator
时,我遇到了一个非常奇怪的问题:
我尝试将旧版项目更新为iOS7
,方法是设置iOS 6/7 deltas
以适应“界面”构建器中的状态栏,以便我在故事板中定义该视图。此视图设置为以编程方式创建的UINavigationController
作为根视图。
当我这样做时, iOS7 iPad模拟器显示正确的用户界面 - 我的视图显示在导航栏下 - 但是,当我在真正的iOS7 iPad上运行完全相同的代码时,它显示视图20像素太低;事实上,如果我没有改变它的任何东西,它会显示在设备上。
这里我不明白的是为什么模拟器和设备在这种情况下表现不同 - 是否有人遇到过同样的问题?在我的其他项目中,我没有这个问题,所以我认为这是故事板或其他一些导致这种奇怪行为的设置。
更新:
有趣的是,在我在新MacBook上重新安装所有内容后,问题就消失了(可能也是最新的Xcode更新......)。
答案 0 :(得分:1)
if( [self respondsToSelector:@selector(edgesForExtendedLayout)] ) {
self.edgesForExtendedLayout = UIRectEdgeNone;
}
我确实将此修复程序应用于viewControllers。在ViewControllers的每个viewDidLoad中出现此错误。此外,您还必须取出您在xib或Storyboard中设置的Delta。这个“修复”的最终结果将是......在模拟器和设备上,一切看起来都很好,也很精确。 (至少在我的情况下)。让xib或storyboard视图保持为“查看iOS 6.1及更早版本”,它们看起来也不错,您仍然可以使用它们。这个修复的唯一问题是:如果您使用助手编辑器并查看xib或故事板在iOS 7下的外观,它看起来不太好......有些视图会有位置。希望它有所帮助。