我试图找出应该在导航栏下面放置视图的约束条件。问题是它的高度取决于当前的方向(纵向为44,横向为32),因此我无法使用确切的数字。
我可以使用任何特殊值来约束吗?
答案 0 :(得分:3)
看到突出显示的顶部约束?这将允许您设置到相邻视图的固定距离。问题是您的导航栏可能位于嵌入视图的顶部,这意味着您需要取消选中“Under Top Bars”设置,然后您将能够为顶部布局管理器设置约束。
答案 1 :(得分:1)
这正是iOS 7提供Top Layout Guide
和Bottom Layout Guide
提供相对于他们的约束的正确原因。
答案 2 :(得分:0)
使用顶部和底部布局指南创建约束可能是正确的解决方案,但它们仅在故事板模式下可用。
如果他们不可用(或由于某种原因不能工作),解决方案如下:
- (void)viewDidLoad {
//initial setup
UIInterfaceOrientation currentOrientation = [UIApplication sharedApplication].statusBarOrientation;
[self applyTopBarOffsetForOrientation:currentOrientation];
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[self applyTopBarOffsetForOrientation:toInterfaceOrientation];
}
- (void)applyTopBarOffsetForOrientation:(UIInterfaceOrientation) orientation {
BOOL isPhone = [UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone;
self.topBarSpacingConstraint.constant = UIDeviceOrientationIsLandscape(orientation) && isPhone ? 52 : 64;
}