随着 iOS 7 的视图控制器是全屏的,是不是可以在视图的最顶部设置约束,而不仅仅是导航栏?

Posted

技术标签:

【中文标题】随着 iOS 7 的视图控制器是全屏的,是不是可以在视图的最顶部设置约束,而不仅仅是导航栏?【英文标题】:With iOS 7's view controllers being full screen, is it possible to set a constraint to the very top of the view, not just the nav bar?随着 iOS 7 的视图控制器是全屏的,是否可以在视图的最顶部设置约束,而不仅仅是导航栏? 【发布时间】:2013-10-18 04:28:39 【问题描述】:

当我将 UILabel 与顶部对齐时,我的选项是 superview,但它始终使用导航栏作为参考点。当我隐藏导航栏并且约束调整为不再有导航栏并且导致标签被拉得更高的事实时,这会导致问题,这是我不希望发生的不幸反应(我希望它留在原地)。

是否可以只说我的 UILabel 应该总是,比如说,距离全屏视图顶部 100pt?

【问题讨论】:

也许你可以试试导航栏的“半透明”选项。 【参考方案1】:

我不确定 Interface Builder,但您可以在代码中轻松做到这一点,例如:

[self.view addConstraints:[NSLayoutConstraint
                           constraintsWithVisualFormat:@"V:|-100-[label]"
                           options:0
                           metrics:nil
                           views:@@"label" : self.label]];

更新:之前我假设标签是主视图的子视图。如果不是,那么您可以使用以下约束:

[self.view addConstraint:[NSLayoutConstraint
                          constraintWithItem:self.label
                          attribute:NSLayoutAttributeTop
                          relatedBy:NSLayoutRelationEqual
                          toItem:self.view
                          attribute:NSLayoutAttributeTop
                          multiplier:1.0
                          constant:100]];

我已经测试过了,它工作正常。

【讨论】:

仍然做同样的事情。

以上是关于随着 iOS 7 的视图控制器是全屏的,是不是可以在视图的最顶部设置约束,而不仅仅是导航栏?的主要内容,如果未能解决你的问题,请参考以下文章

iOS中全屏的bounds设置

判断当前窗口是否是全屏的山寨版和官方版

如何在 iOS 上拍摄全屏相机照片?

从 MasterViewController 呈现的 ModalView 在 iOS 5.1 中不再是全屏

我用html5的video标签做的视频页面,在iphone上测试的时候视频都是全屏的,怎么才能不全屏?

横向模式下视频视图不是全屏