gpt4 book ai didi

ios - 如何以编程方式为不同数量的 UIView 设置约束

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:46 25 4
gpt4 key购买 nike

我是自动布局约束的新手。在我的应用程序中,一行有 3 个按钮。现在我想以编程方式设置约束,如下图所示:

Image flow

如果有,则按钮水平居中显示。如果启用了两个按钮,则第二行显示在与三个图像相同的图像中。

最佳答案

我的做法是一开始就把所有按钮centerX设置到superview的centerX

IBOutletCollection(UIButton) NSArray *allButtons;
//3 buttons' references
IBOutletCollection(NSLayoutConstraint) NSArray *allButtonCenterConstraints;
//buttons' centerX constraints' references

然后如果在 viewDidAppear:

int t = arc4random() %3;// one of the 3 cases you will need


if (t == 0) {//if you want all 3 buttons appears
//all buttons shown
NSLayoutConstraint *c1 = allButtonCenterConstraints[0];//first button's centerX reference.
NSLayoutConstraint *c2 = allButtonCenterConstraints[2];//third button's centerX reference.

c1.constant = -self.view.frame.size.width*0.25;//push left
c2.constant = +self.view.frame.size.width*0.25;//push right
}
else if (t == 1)
{
//two buttons shown;
[allButtons[0] setHidden:YES];// close the one you dont need
NSLayoutConstraint *c1 = allButtonCenterConstraints[1];
NSLayoutConstraint *c2 = allButtonCenterConstraints[2];

c1.constant = -self.view.frame.size.width*0.125;
c2.constant = +self.view.frame.size.width*0.125;

}
else
{
//close 2 buttons
[allButtons[0] setHidden:YES];
[allButtons[1] setHidden:YES];
}
[self.view layoutIfNeeded];

如果你需要的东西取决于按钮的宽度,你可以根据按钮的宽度设置常量。

关于ios - 如何以编程方式为不同数量的 UIView 设置约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35356617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com