设置两个uiview的动态相等高度取决于他们使用自动布局的子视图?

时间:2015-09-08 04:59:48

标签: ios ios-autolayout

我在该视图中有一个超级视图有两个子视图。 我已经设置了两个视图的相同高度。那些子视图高度随着标签高度的变化而变化。

这是我实施的第一个屏幕。当标签2高度大于标签1高度相对于标签2高度变化时,它起作用。

enter image description here

这是第一个屏幕。它工作正常,但另一种情况是,当标签1高度大于标签2高度时,它不起作用,那么它不能正常工作。 输出如下面的屏幕 enter image description here 正如预期的那样,标签2需要相对于标签1进行调整,但随后标签1也相对于标签2进行调整。

所以如何为两个视图应用约束设置相等高度取决于它们的子视图高度。

2 个答案:

答案 0 :(得分:1)

您可以动态地标注你的标签

调用UILabel身高

的方法
-(CGSize) getContentSize_Label:(UILabel*) myLabelView{
    return [myLabelView sizeThatFits:CGSizeMake(myLabelView.frame.size.width, FLT_MAX)];
}

并设置标签高度

   myLabelView.frame = CGRectMake(myLabelView.frame.origin.x, myLabelView.frame.origin.y, myLabelView.frame.size.width, [self getContentSize_Label:myLabelView].height);

并设置

  myLabelView.numberOfLines = 0;

答案 1 :(得分:0)

你所缺少的很可能是相同的身高约束。

选择标签的两个容器视图,然后转到Xcode / Editor / Pin /并选择Height。

我刚检查过它并为我工作。