Ios 将UIButton分组为一个层并水平居中
我在屏幕上有两个按钮,我通过编程创建和放置它们Ios 将UIButton分组为一个层并水平居中,ios,swift,autolayout,constraints,nslayoutconstraint,Ios,Swift,Autolayout,Constraints,Nslayoutconstraint,我在屏幕上有两个按钮,我通过编程创建和放置它们 let myButton1 = UIButton() let myButton2 = UIButton() let myButton1Frame = CGRectMake(anotherField.origin.x + 20, anotherField.origin.y + 80, 30, 30) myButton1.frame = myButton1Frame var myButton2Frame = myButton1Frame myBut
let myButton1 = UIButton()
let myButton2 = UIButton()
let myButton1Frame = CGRectMake(anotherField.origin.x + 20, anotherField.origin.y + 80, 30, 30)
myButton1.frame = myButton1Frame
var myButton2Frame = myButton1Frame
myButton2Frame.origin.x += 130
myButton2.frame = myButton2Frame
self.view.addSubview(myButton1)
self.view.addSubview(myButton2)
我试图在视觉上实现的是
| AnotherField |
| |
| myBtn1 myBtn2 |
我试图实现的东西在模拟器上运行正常,但我相信有一种更聪明的方法可以通过使用约束来实现它
我想如果我能将
myButton1
和myButton2
分组,我就可以将+y
作为组的原点,然后通过给按钮之间的距离x
水平居中(我的意思是,两个按钮之间的距离-希望这是有意义的)
正确的方法是什么?还是有更好的方法让我实现这一目标 我的建议是,将两个按钮都放在容器视图中,并将容器置于superview的中心 所以它看起来像这样:
+--------------------------------+
|+--------------++--------------+|
|| Button1 || Button 2 ||
|+--------------++--------------+|
+--------------------------------+
因此,您需要完成以下步骤:
- 添加将包含按钮的视图容器(“按钮容器”)
- 将这两个按钮添加到前面提到的容器中
- 将完全满足的约束从按钮添加到封闭容器视图李>
- 从容器视图添加水平中心约束 到superview(例如控制器的视图)
我希望这能让事情变得清楚,如果你需要进一步的帮助或者有些事情还不清楚,请告诉我 我的建议是,将两个按钮都放在容器视图中,并将容器置于superview的中心 所以它看起来像这样:
+--------------------------------+
|+--------------++--------------+|
|| Button1 || Button 2 ||
|+--------------++--------------+|
+--------------------------------+
因此,您需要完成以下步骤:
- 添加将包含按钮的视图容器(“按钮容器”)
- 将这两个按钮添加到前面提到的容器中
- 将完全满足的约束从按钮添加到封闭容器视图李>
- 从容器视图添加水平中心约束 到superview(例如控制器的视图)
我希望这能让事情变得清楚,如果你需要进一步的帮助或者有些事情还不清楚,请告诉我 非常感谢你的回答!我没有使用故事板,而是通过编程尝试创建按钮。这就是事情变得混乱的原因。有没有一种方法可以在不添加额外containerview的情况下纯粹通过编程实现这一点/您可以通过编程方式添加容器视图和约束,但这需要相当多的代码……当然有一种方法可以在没有约束(或容器视图)的情况下进行添加,但我不建议您亲自使用该方法。您也可以只对按钮进行基本的数学运算,然后将其居中。在iOS中,我认为Android中没有布局或组的概念,所以你必须坚持用黑客的方式实现它(简单地根据大小计算它们的位置),或者像我建议的那样使用约束和容器视图,我认为这更灵活。非常感谢你的回答!我没有使用故事板,而是通过编程尝试创建按钮。这就是事情变得混乱的原因。有没有一种方法可以在不添加额外containerview的情况下纯粹通过编程实现这一点/您可以通过编程方式添加容器视图和约束,但这需要相当多的代码……当然有一种方法可以在没有约束(或容器视图)的情况下进行添加,但我不建议您亲自使用该方法。您也可以只对按钮进行基本的数学运算,然后将其居中。我认为,在iOS中没有像Android中那样的布局或组的概念,所以你必须坚持用黑客的方式实现它(简单地根据大小计算它们的位置),或者像我建议的那样使用约束和容器视图,我认为这更灵活。