随着 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 的视图控制器是全屏的,是不是可以在视图的最顶部设置约束,而不仅仅是导航栏?的主要内容,如果未能解决你的问题,请参考以下文章
从 MasterViewController 呈现的 ModalView 在 iOS 5.1 中不再是全屏