我目前正在将我的应用过渡到iOS 7(希望它仍然兼容iOS 6)。这个问题不涉及苹果NDA,它是关于自动布局的问题(似乎iOS 7强制使用自动布局(编辑:错了,它并没有强制要求))。
我有一个导航控制器和一个根视图控制器(显而易见)。在iOS 6中,我没有使用自动布局,因此根视图控制器位于导航栏下方。在iOS 7中,框架原点不包括导航栏,因此我的内容顶部部分被隐藏了...
您有想法如何使用自动布局使整个视图位于导航栏上方吗?
谢谢!
我目前正在将我的应用过渡到iOS 7(希望它仍然兼容iOS 6)。这个问题不涉及苹果NDA,它是关于自动布局的问题(似乎iOS 7强制使用自动布局(编辑:错了,它并没有强制要求))。
我有一个导航控制器和一个根视图控制器(显而易见)。在iOS 6中,我没有使用自动布局,因此根视图控制器位于导航栏下方。在iOS 7中,框架原点不包括导航栏,因此我的内容顶部部分被隐藏了...
您有想法如何使用自动布局使整个视图位于导航栏上方吗?
谢谢!
iOS 7中有一个名为topLayoutGuide的元素,用于指定导航栏位置。您可以指定表格视图(tableview)约束与顶部布局指南(topLayoutGuide)相连而不是与父视图相连。
这将帮助您确定它是否为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];