将 UIButtons 分组为一个层并水平居中
Grouping UIButtons as a Layer and Horizontally Center
我在屏幕上以编程方式创建和放置了 2 个按钮。
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 |
我尝试实现的目标在 Simulator 上运行良好,但我相信有一种更聪明的方法可以通过使用约束来实现它。
我想如果我能设法将 myButton1
和 myButton2
分组,我可以只给 +y
原点分组,然后通过给按钮一个距离 x
彼此 (我的意思是,2 个按钮之间的距离 - 希望这是有道理的)。
正确的做法是什么?或者我有更好的方法来实现这一目标吗?
我的建议是将两个按钮都放入一个容器视图中,并将该容器置于父视图的中心。
所以它看起来像这样:
+--------------------------------+
|+--------------++--------------+|
|| Button1 || Button 2 ||
|+--------------++--------------+|
+--------------------------------+
因此您需要完成以下步骤:
- 添加将包含按钮的视图容器 ("button container")
- 将两个按钮添加到上述容器中
- 从按钮向封闭容器视图添加完全令人满意的约束。
- 从容器视图添加水平居中约束
到超级视图(例如您的控制器视图)。
您在问题标签中指定了自动布局和布局约束,所以我假设您使用了自动布局(您的代码没有使用自动布局或约束,这就是我提出这个问题的原因)。
约束(如果在按钮和容器视图之间正确设置)应该适当地调整容器视图的大小,一旦容器视图完成布局,容器父视图的水平约束也会起作用,有效地居中容器,因此还有你的两个按钮。
我希望这能让事情变得清晰,如果您需要进一步的帮助或者还有什么不清楚的地方,请告诉我。
我在屏幕上以编程方式创建和放置了 2 个按钮。
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 |
我尝试实现的目标在 Simulator 上运行良好,但我相信有一种更聪明的方法可以通过使用约束来实现它。
我想如果我能设法将 myButton1
和 myButton2
分组,我可以只给 +y
原点分组,然后通过给按钮一个距离 x
彼此 (我的意思是,2 个按钮之间的距离 - 希望这是有道理的)。
正确的做法是什么?或者我有更好的方法来实现这一目标吗?
我的建议是将两个按钮都放入一个容器视图中,并将该容器置于父视图的中心。
所以它看起来像这样:
+--------------------------------+
|+--------------++--------------+|
|| Button1 || Button 2 ||
|+--------------++--------------+|
+--------------------------------+
因此您需要完成以下步骤:
- 添加将包含按钮的视图容器 ("button container")
- 将两个按钮添加到上述容器中
- 从按钮向封闭容器视图添加完全令人满意的约束。
- 从容器视图添加水平居中约束 到超级视图(例如您的控制器视图)。
您在问题标签中指定了自动布局和布局约束,所以我假设您使用了自动布局(您的代码没有使用自动布局或约束,这就是我提出这个问题的原因)。
约束(如果在按钮和容器视图之间正确设置)应该适当地调整容器视图的大小,一旦容器视图完成布局,容器父视图的水平约束也会起作用,有效地居中容器,因此还有你的两个按钮。
我希望这能让事情变得清晰,如果您需要进一步的帮助或者还有什么不清楚的地方,请告诉我。