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

维拉吉·帕萨拉

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

图像流

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

甲基

我的方法是在开始时将所有按钮设置centerX为超级视图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];

如果需要某些东西取决于按钮的宽度,则可以根据按钮的宽度设置常数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以编程方式设置UIView大小以匹配父项而没有约束

来自分类Dev

如何以编程方式在表视图页脚中设置UIView的约束?

来自分类Dev

如何以编程方式从UIView获取约束“ bottomSpace”?

来自分类Dev

如何以编程方式为iOS中的所有设备全屏设置UIView?

来自分类Dev

如何以编程方式使用CAGradientLayer将渐变设置为UIView(子视图)?

来自分类Dev

如何以编程方式为布局的每个角设置不同的半径?

来自分类Dev

如何以编程方式为ImageView设置动画

来自分类Dev

如何以编程方式为DataGrid设置RowHeaderTemplate?

来自分类Dev

Android:如何以编程方式为片段设置边距?

来自分类Dev

如何以编程方式将视图设置为正面/背面?

来自分类Dev

如何以编程方式为textview设置字体?

来自分类Dev

如何以编程方式为视图设置特定的宽度/高度?

来自分类Dev

如何以编程方式为视图设置背景?

来自分类Dev

如何以编程方式将UserControl设置为Topmost?

来自分类Dev

如何以编程方式将NSWindow设置为全屏?

来自分类Dev

如何以编程方式为 Imageview 设置双倍高度?

来自分类Dev

如何以编程方式将 UISearchBar 设置为 safeAreaLayoutGuide?

来自分类Dev

如何以编程方式创建布局约束

来自分类Dev

如何以编程方式禁用约束?

来自分类Dev

如何以编程方式访问约束数据?

来自分类Dev

以编程方式快速为 LoginButton 设置约束

来自分类Dev

如何以编程方式设置UITableView的dataSource?

来自分类Dev

如何以编程方式设置TextFormattingMode?

来自分类Dev

如何以编程方式设置LinearLayout的宽度?

来自分类Dev

如何以编程方式设置UIGestureRecognizer的状态?

来自分类Dev

如何以编程方式设置Cron作业?

来自分类Dev

如何以编程方式设置LockDrawerMode

来自分类Dev

如何以编程方式设置Recyclerview的高度?

来自分类Dev

如何以编程方式设置WKInterfaceController的backgroundColor?

Related 相关文章

  1. 1

    如何以编程方式设置UIView大小以匹配父项而没有约束

  2. 2

    如何以编程方式在表视图页脚中设置UIView的约束?

  3. 3

    如何以编程方式从UIView获取约束“ bottomSpace”?

  4. 4

    如何以编程方式为iOS中的所有设备全屏设置UIView?

  5. 5

    如何以编程方式使用CAGradientLayer将渐变设置为UIView(子视图)?

  6. 6

    如何以编程方式为布局的每个角设置不同的半径?

  7. 7

    如何以编程方式为ImageView设置动画

  8. 8

    如何以编程方式为DataGrid设置RowHeaderTemplate?

  9. 9

    Android:如何以编程方式为片段设置边距?

  10. 10

    如何以编程方式将视图设置为正面/背面?

  11. 11

    如何以编程方式为textview设置字体?

  12. 12

    如何以编程方式为视图设置特定的宽度/高度?

  13. 13

    如何以编程方式为视图设置背景?

  14. 14

    如何以编程方式将UserControl设置为Topmost?

  15. 15

    如何以编程方式将NSWindow设置为全屏?

  16. 16

    如何以编程方式为 Imageview 设置双倍高度?

  17. 17

    如何以编程方式将 UISearchBar 设置为 safeAreaLayoutGuide?

  18. 18

    如何以编程方式创建布局约束

  19. 19

    如何以编程方式禁用约束?

  20. 20

    如何以编程方式访问约束数据?

  21. 21

    以编程方式快速为 LoginButton 设置约束

  22. 22

    如何以编程方式设置UITableView的dataSource?

  23. 23

    如何以编程方式设置TextFormattingMode?

  24. 24

    如何以编程方式设置LinearLayout的宽度?

  25. 25

    如何以编程方式设置UIGestureRecognizer的状态?

  26. 26

    如何以编程方式设置Cron作业?

  27. 27

    如何以编程方式设置LockDrawerMode

  28. 28

    如何以编程方式设置Recyclerview的高度?

  29. 29

    如何以编程方式设置WKInterfaceController的backgroundColor?

热门标签

归档