围绕两个按钮与可可自动布局(Centering two buttons with Cocoa Aut

2019-08-17 22:58发布

我有可可自动布局问题,不能让我的头解决这个问题。 所有我想实现的是有两个按钮始终处于视图中心为如下所示。

我试过很多没有任何成功不同的方法:(请帮我在这里。

Answer 1:

另一个技巧做,这是对齐的右边button是从空间的中心掉的一半大小superview和左侧button2是从空间的中心掉一半大小superview

这,如果你有,只有围绕着你想,虽然中心的两个视图的上海华才真正起作用。



Answer 2:

我从记忆写这篇所以希望所有的信息是正确的。 我使用XCode5。 这里是我结束了从没有约束这样做的出发方式:

  1. 选择这两个按钮和添加约束来设置自己的高度和宽度 ,从对IB画布右下方第二个按钮进入添加新的约束窗口。

  2. 有了这两个按钮仍选择添加约束来设置他们的Y位置 。 无论是上面的空间或空间低于在添加新的限制窗口就行了。

  3. 现在选择按钮1,并从第一个按钮的IB画布右下方访问添加新的对齐约束窗口中添加一个对齐约束“水平居中集装箱”。 默认情况下,加约束的“常量”值是0,我们想改变这种状况,因为它是错误的。

  4. 此时按钮1将不得不通过它垂直运行的黄条 。 这是表示该按钮的水平中心不等于容器的水平中心的警告+约束的常数(0)。 竖线上的号码按钮是如何遥远的中心。 请记住这个数字。

  5. 无论是双击通电按钮(需要灵巧)或选择按钮垂直黄色条1到左窗格中单击标尺和“选择和编辑”所谓的“居中对齐X到:”约束。

  6. 输入在标有“恒定”文本框中 步骤4数量 。 按钮1现在已经满足了所有它需要为它显示的约束。 它有一个宽度,高度,Y(顶部空间或底部空间约束),而现在的X(水平中心对准)。 按钮2,但是仍然缺少它可以捎带OFF按钮1的X位置。

  7. 选择按钮2,后藤添加新的限制窗口, 只需将导致空间按钮1(左棒顶掉白框)。

你现在应该有两个按钮,这将始终在一个固定的宽度彼此留在容器中心分开。



Answer 3:

一个绝招儿与自动布局是用无形的意​​见间隔。 约束系统仍然勾画出来是正常的。 在这种情况下,两个按钮之间的空间可以是一个不可见的图。 您可以使用此约束字符串的约束:

@"[button][invisibleView(5)][button2(==button)]"

然后创建一个约束设置invisibleView.centerX = superview.centerX



Answer 4:

如果你有固定宽度的按钮,你想要两个那么下面的步骤可以做的工作之间的固定距离:

  1. 添加WidthHeight constraintbutton1值示例:100的高度和宽度100。
  2. 选择两个按钮,并添加constraint Equal WidthsEqual Heights
  3. 添加Horizontal Spacing之间的button1button2 。 或者我们可以说添加Leading Space ,以button2button1 。 值示例:150
  4. 选择button1 ,并添加constraint Horizontally in Container与-125值。
  5. 添加其他constrains一样Vertical Spacing to Container按需要等。

实施例125的值是等于( button1 width / 2)+( Horizontal Spacing / 2),这是100/2 +二分之一百五十= 125。

因此,增加Horizontal in Container至-125将移动buttons向左,这将让屏幕此布局中心。

下面所附实施例的布局和约束的图像:



Answer 5:

基本上,我有两个UIButtons我里面UITableViewCell需要定位低于要始终围绕并与相同的宽度。 这是我如何使它在Xcode 7.2工作。 我使用的是斯威夫特的方式,如果这有任何关系。

  1. 在左边的按钮,我给它一个领先底部约束
  2. 在右边的按钮,我给它一个尾部底部的限制
  3. 在右边的按钮,我把它给左键前导空格
  4. 最后,在我右边的按钮,我给它一个平等的宽度约束左键
  5. 完成。


Answer 6:

您可以按照以下方式也实现了。

1.Take为左键前导空格,右按键尾随空间。
2.Construct网点前沿和后限制。

 __weak IBOutlet NSLayoutConstraint *leadingConstraint;
 __weak IBOutlet NSLayoutConstraint *trailingConstraint;

3.Caluclate常数如下式。

NSInteger constant = (SCREEN_WIDTH - (CGRectGetWidth(leftButton.frame) + CGRectGetWidth(rightButton.frame))) / 3;
    leadingConstraint.constant = constant;
    trailingConstraint.constant = constant;

希望它会帮助你。



Answer 7:

伟大的秘诀。 在我的情况下,我希望从我的视图的中心为中心隔开10个像素的按钮,所以我的数学略有不同

leadingConstraint.constant = (self.frame.size.width / 2.0) + 5.0;
trailingConstraint.constant = (self.frame.size.width / 2.0) + 5.0;


文章来源: Centering two buttons with Cocoa Auto Layout