2015-02-23 94 views

回答

1

我想,现在你有这样的(1)限制:

H:| - (0) - [为了] - (0) - [预订] - (0) - ],订单。宽度= reservations.width

应该创建附加约束是这样的(2):

H:| [订单] [约束] |

H:| [约束] [预约] |

,其中约束位于按钮和超视图的相应边界之间,且常数= 0. 然后,您应将其优先级设置为小于主约束(1)(例如990)。

在这种情况下,当您隐藏按钮时,我们的附加约束变为活动状态并使按钮填充所有宽度。

+0

如何隐藏其中一个按钮?简单地调用button.hidden = YES不会更新它的宽度,对吧? – rdurand 2015-02-25 08:29:19

-1

使用下面的链接

https://github.com/damienromito/UIView-UpdateAutoLayoutConstraints

#import "UIView+UpdateAutoLayoutConstraints.h" 

下载的文件在github上取2个NSLayoutConstraints像下面

IBOutlet NSLayoutConstraint *orderHeightCons; 
IBOutlet NSLayoutConstraint *reserHeightCons; 
IBOutlet UIButton orderBtn,reservationBtn; 

//Then connect at IB both Constraint & Buttons. Use Below Code For Hiding the Order Button & Modifying the Width for Reservation Button 

orderBtn.hidden=YES; 
//Hide Order Button..change value as per ur button height 
[orderBtn setConstraintConstant:0 forAttribute:NSLayoutAttributeHeight]; 

//if constraint doesn't exist, it will be created..change value as per ur button width 
[orderBtn setConstraintConstant:0 forAttribute:NSLayoutAttributeWidth]; 

//you can use tools to hide 
[orderBtn hideByHeight:YES]; 

//Modify Reservation Button..change value as per ur button height 
[reservationBtn setConstraintConstant:100 forAttribute:NSLayoutAttributeHeight]; 

//if constraint doesn't exist, it will be created..change value as per ur button width..(button1+button2) height value 
[reservationBtn setConstraintConstant:200 forAttribute:NSLayoutAttributeWidth]; 

[reservationBtn hideByHeight:NO]; 

希望这将有助于到u ..!

+0

减号不是我的,尽管可以在不处理代码限制的情况下解决问题。 – 2015-02-23 18:27:18

0

如果我理解正确,你想要做的是,当你隐藏button1(Order)时,button2(Reservations)应该展开并且其最终宽度应该是(original)button1 + button2,那是对的吗?

如果是这样,你可以做以下的情况:

  1. 添加一个UIView,将附上Button1的和按钮2。将约束设置为该UIView,以便它以您想要的按钮的高度结束,其宽度等于button1 + button2(可能通过设置其超级视图的前导和尾部约束)以及您想要用于按钮的垂直位置。
  2. 对于按钮1,宽度约束,顶部和底部空间到上海华设置为0(或相等的高度至上海华+中心垂直于容器),和前导间隔的容器视图为0
  3. 对于BUTTON2 ,将水平间距设置为按钮1为0,将顶部和底部空间设置为超级视图为0(或者在容器中将垂直高度设置为超级视图+中心),同时将超级视图的尾部空间设置为0。不要设置一个宽度约束为BUTTON2

随着该组约束,当你更改Button1为0的宽度约束的常数,BUTTON2应扩大到想要的大小。

相关问题