gpt4 book ai didi

iphone - 带有导航栏和 View Controller 的自动布局 (iOS 7)

转载 作者:IT王子 更新时间:2023-10-29 08:11:28 24 4
gpt4 key购买 nike

我目前正在将我的应用程序转移到 iOS 7(我希望它保持与 iOS 6 兼容)。 Apple NDA 没有涵盖这个问题,它是关于自动布局的问题(似乎 iOS 7 强制自动布局(编辑:错了,它不是强制的))。

我有一个带有 Root View Controller 的导航 Controller (显而易见)。在 iOS 6 中,我没有使用自动布局,所以 Root View Controller 位于导航栏下方。在 iOS 7 中,框架原点不包括导航栏,所以我的内容的顶部被隐藏了......

您知道如何使用自动布局在导航栏上方制作整个 View 吗?

谢谢!

最佳答案

在 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];

关于iphone - 带有导航栏和 View Controller 的自动布局 (iOS 7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18603794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com