xib中的自动布局 - 子视图的高度与导航栏和标签栏之间的空间成比例

时间:2015-10-08 23:03:40

标签: autolayout

在xib中工作时如何做到这一点。 (以编程方式添加约束很好,但在导航栏或状态栏的任何位置都没有任何硬编码值。)

有一个子视图,其相对高度I希望与顶部布局指南和底部布局指南之间的垂直空间成比例。

例如,在下图中 - 蓝色部分的高度需要与导航栏和底部标签栏(如果有)之间的垂直空间成比例。

enter image description here

PS - 再一次,它是一个xib,而不是一个故事板。

1 个答案:

答案 0 :(得分:0)

对于任何偶然发现这个问题的人来说,我就是这样做的。

- (void)viewDidLayoutSubviews {  NSLayoutConstraint *heightConstraint = [NSLayoutConstraint constraintWithItem:self.subviewInQuestion
                                                                     attribute:NSLayoutAttributeHeight
                                                                     relatedBy:NSLayoutRelationEqual
                                                                        toItem:nil
                                                                     attribute:NSLayoutAttributeNotAnAttribute
                                                                    multiplier:1.0
                                                                      constant:0.5*(self.view.frame.size.height - [self.topLayoutGuide length] - [self.bottomLayoutGuide length])];
heightConstraint.identifier = @"ID_5";
[self.view addConstraint:heightConstraint];

[self.view setNeedsLayout]; }