对于单个XIB文件,我有3种不同的方案。
这是XIB文件,我有3个不同的UIView。
我的情景是:
我的问题是第二种情况,只显示了视图1和视图3。
我可以隐藏View 2,但我希望这个特定情况能让View 1和View 3更接近。
我该怎么办?
我试过这样的事但没有成功。
-(void)setConstraints {
[NSLayoutConstraint constraintWithItem:_infoView1
attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual
toItem:_infoView3 attribute:NSLayoutAttributeBottom
multiplier:1.0 constant:0];
}
答案 0 :(得分:1)
Step 1 : Connect top constraint of view 2 with view 1 similarly connect top constraint of view 3 with view 2 then create and map height constraints for view 1 view 2 and view 3.
Step 2 : For scenarios mentioned in question, put conditions for your cases and do steps mentioned below
1) View 2 is displayed and View 1 and View 3 are hidden.
set height constraint for view 1 and view 3 to zero
heightConstraintOfView1.constant = 0
heightConstraintOfView3.constant = 0
2) View 1 and View 3 are displayed and View 2 is hidden.
set height constraint for view 2 to zero
heightConstraintOfView2.constant = 0
3) View 1, View 2 and View 3 are displayed.
Don’t set height constraint for any view to zero.
我假设所有其他约束都已正确设置。
答案 1 :(得分:0)
从storyBoard设置约束: -
1:视图2设置中心(水平和垂直),前导和尾随(零)和高度根据Xib的高度设置。
2:视图1设置视图2的相等前导,尾随和高度以及视图2中的底部空间为零。
3:视图3设置视图2的相等前导,尾随和高度以及视图2中的顶部空间为零。
• View 2 is displayed and View 1 and View 3 are hidden.
View2.isHidden = false
View1.isHidden = true
View3.isHidden = true
•显示视图1和视图3,隐藏视图2.
View2.isHidden = true
View1.isHidden = false
View3.isHidden = false
•显示视图1,视图2和视图3。
View2.isHidden = false
View1.isHidden = false
View3.isHidden = false
根据需要设置颜色。
答案 2 :(得分:0)
是否要使用非隐藏视图填充父视图,以保持父视图高度与以前相同?
答案 3 :(得分:0)
为view1,view2和view3指定高度约束。 为这些约束创建出口 - heightConstraintView1,heightConstraintView2和heightConstraintView3。
对于这种情况,你想要隐藏view2,将view2的高度约束设置为你想要的高度。
heightConstraintView2.constant = 5
在其他情况下,将高度约束设置为所有视图的相等值。
heightConstraint1.constant = heightConstraint2.constant = heightConstraint3.constant = <A constant value>