我有一个带有两个子视图的ViewP,viewA和viewB。 viewA始终存在,但viewB在某些情况下应该看不到。 所有这些视图都是从xib加载的。
我的问题是,如何在viewA的高度+ ViewB的高度上更新viewP的高度。如果隐藏ViewB,如何通过几个简单的代码更新viewP的高度,而不是通过硬编码更新帧。
首先,我只是将viewB设置为隐藏。但是viewP无法更新自己。
我已经搜索过,并且有办法调整视图的两个高度约束的优先级。一个0高,另一个高46,但当我通过代码改变他们的优先级。看起来它对我不起作用。
答案 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];
里面的工作:
如果任何其他约束使宽度或高度大于0,则其优先级必须低于1000