我有可可自动布局问题,不能让我的头解决这个问题。 所有我想实现的是有两个按钮始终处于视图中心为如下所示。
我试过很多没有任何成功不同的方法:(请帮我在这里。
我有可可自动布局问题,不能让我的头解决这个问题。 所有我想实现的是有两个按钮始终处于视图中心为如下所示。
我试过很多没有任何成功不同的方法:(请帮我在这里。
另一个技巧做,这是对齐的右边button
是从空间的中心掉的一半大小superview
和左侧button2
是从空间的中心掉一半大小superview
。
这,如果你有,只有围绕着你想,虽然中心的两个视图的上海华才真正起作用。
我从记忆写这篇所以希望所有的信息是正确的。 我使用XCode5。 这里是我结束了从没有约束这样做的出发方式:
选择这两个按钮和添加约束来设置自己的高度和宽度 ,从对IB画布右下方第二个按钮进入添加新的约束窗口。
有了这两个按钮仍选择添加约束来设置他们的Y位置 。 无论是上面的空间或空间低于在添加新的限制窗口就行了。
现在选择按钮1,并从第一个按钮的IB画布右下方访问添加新的对齐约束窗口中添加一个对齐约束“水平居中集装箱”。 默认情况下,加约束的“常量”值是0,我们想改变这种状况,因为它是错误的。
此时按钮1将不得不通过它垂直运行的黄条 。 这是表示该按钮的水平中心不等于容器的水平中心的警告+约束的常数(0)。 竖线上的号码按钮是如何遥远的中心。 请记住这个数字。
无论是双击通电按钮(需要灵巧)或选择按钮垂直黄色条1到左窗格中单击标尺和“选择和编辑”所谓的“居中对齐X到:”约束。
从输入在标有“恒定”的文本框中 步骤4的数量 。 按钮1现在已经满足了所有它需要为它显示的约束。 它有一个宽度,高度,Y(顶部空间或底部空间约束),而现在的X(水平中心对准)。 按钮2,但是仍然缺少它可以捎带OFF按钮1的X位置。
选择按钮2,后藤添加新的限制窗口, 只需将导致空间按钮1(左棒顶掉白框)。
你现在应该有两个按钮,这将始终在一个固定的宽度彼此留在容器中心分开。
一个绝招儿与自动布局是用无形的意见间隔。 约束系统仍然勾画出来是正常的。 在这种情况下,两个按钮之间的空间可以是一个不可见的图。 您可以使用此约束字符串的约束:
@"[button][invisibleView(5)][button2(==button)]"
然后创建一个约束设置invisibleView.centerX = superview.centerX
。
如果你有固定宽度的按钮,你想要两个那么下面的步骤可以做的工作之间的固定距离:
Width
和Height
constraint
到button1
值示例:100的高度和宽度100。 constraint
Equal Widths
和Equal Heights
。 Horizontal Spacing
之间的button1
和button2
。 或者我们可以说添加Leading Space
,以button2
从button1
。 值示例:150 button1
,并添加constraint
Horizontally in Container
与-125值。 constrains
一样Vertical Spacing to Container
按需要等。 实施例125的值是等于( button1
width
/ 2)+( Horizontal Spacing
/ 2),这是100/2 +二分之一百五十= 125。
因此,增加Horizontal in Container
至-125将移动buttons
向左,这将让屏幕此布局中心。
下面所附实施例的布局和约束的图像:
基本上,我有两个UIButtons
我里面UITableViewCell
需要定位低于要始终围绕并与相同的宽度。 这是我如何使它在Xcode 7.2工作。 我使用的是斯威夫特的方式,如果这有任何关系。
您可以按照以下方式也实现了。
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;
希望它会帮助你。
伟大的秘诀。 在我的情况下,我希望从我的视图的中心为中心隔开10个像素的按钮,所以我的数学略有不同
leadingConstraint.constant = (self.frame.size.width / 2.0) + 5.0;
trailingConstraint.constant = (self.frame.size.width / 2.0) + 5.0;