隐藏或显示一个带约束的视图

时间:2015-04-06 06:51:05

标签: ios constraints

我有一个带有两个子视图的ViewP,viewA和viewB。 viewA始终存在,但viewB在某些情况下应该看不到。 所有这些视图都是从xib加载的。

我的问题是,如何在viewA的高度+ ViewB的高度上更新viewP的高度。如果隐藏ViewB,如何通过几个简单的代码更新viewP的高度,而不是通过硬编码更新帧。

首先,我只是将viewB设置为隐藏。但是viewP无法更新自己。

我已经搜索过,并且有办法调整视图的两个高度约束的优先级。一个0高,另一个高46,但当我通过代码改变他们的优先级。看起来它对我不起作用。

1 个答案:

答案 0 :(得分:0)

如果您是Autolayout的新手,我推荐这个框架。作为文本艺术的主要工作,它简单明了。你可以在github找到它。

回到你的问题。 您可以使用QuickVFL API来执行此操作:

/**
 *  Control the visibility of the view.
 *
 *  @param visible   whether show the view
 *  @param vertically whether vertically, or horizontally
 */
-(void)q_setVisibility:(BOOL)visible isVertically:(BOOL)vertically;

例如:

[anyViewInstance q_setVisibility:NO isVertically:YES];

里面的工作:

  1. 添加约束以限制目标窗口小部件的宽度或高度(取决于isVertical)。
  2. 将约束的常量值设置为0
  3. 将约束的优先级设置为1000(最高)
  4.   

    如果任何其他约束使宽度或高度大于0,则其优先级必须低于1000