我目前正在将我的应用程序转移到 iOS 7(我希望它保持与 iOS 6 兼容)。Apple NDA 没有涵盖这个问题,它是关于自动布局的问题(似乎 iOS 7 强制自动布局(编辑:错了,不是强制的))。
我有一个带有根视图控制器的导航控制器(很明显)。在 iOS 6 中,我没有使用自动布局,因此根视图控制器位于导航栏下方。在 iOS 7 中,框架原点不包括导航栏,所以我的内容的顶部被隐藏了......
您知道如何使用 Auto Layout 在导航栏上方制作整个视图吗?
谢谢 !
我目前正在将我的应用程序转移到 iOS 7(我希望它保持与 iOS 6 兼容)。Apple NDA 没有涵盖这个问题,它是关于自动布局的问题(似乎 iOS 7 强制自动布局(编辑:错了,不是强制的))。
我有一个带有根视图控制器的导航控制器(很明显)。在 iOS 6 中,我没有使用自动布局,因此根视图控制器位于导航栏下方。在 iOS 7 中,框架原点不包括导航栏,所以我的内容的顶部被隐藏了......
您知道如何使用 Auto Layout 在导航栏上方制作整个视图吗?
谢谢 !
在 iOS 7 上,您拥有指定导航栏的 topLayoutGuide。然后,您可以指定您希望 tableview 的约束位于 topLayoutGuide 而不是 superview 上。
这将帮助您了解它是否是 iOS7:
if ([self respondsToSelector:@selector(topLayoutGuide)])
所以它可以是这样的
NSString *verticalConstraint = @"V:|[v]|";
NSMutableDictionary *views = [NSMutableDictionary new];
views[@"v"] = self.tableview;
if ([self respondsToSelector:@selector(topLayoutGuide)]) {
views[@"topLayoutGuide"] = self.topLayoutGuide;
verticalConstraint = @"V:[topLayoutGuide][v]|";
}
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:verticalConstraint options:0 metrics:nil views:views]];
[self.view addConstraints:constraints];