Ios6 两个按钮居中,自动布局
我对Cocoa自动布局有问题,无法解决这个问题。 我想要实现的就是在视图中始终有两个按钮居中,如下所示Ios6 两个按钮居中,自动布局,ios6,autolayout,Ios6,Autolayout,我对Cocoa自动布局有问题,无法解决这个问题。 我想要实现的就是在视图中始终有两个按钮居中,如下所示 我尝试了很多不同的方法,但都没有成功:(请在此帮助我。自动布局的一个巧妙技巧是使用不可见视图作为分隔符。约束系统仍将它们按正常方式进行布局。在这种情况下,两个按钮之间的空间可以是不可见视图。您可以使用此约束字符串中的约束: @"[button][invisibleView(5)][button2(==button)]" 然后创建一个约束设置invisibleView.centerX=sup
我尝试了很多不同的方法,但都没有成功:(请在此帮助我。自动布局的一个巧妙技巧是使用不可见视图作为分隔符。约束系统仍将它们按正常方式进行布局。在这种情况下,两个按钮之间的空间可以是不可见视图。您可以使用此约束字符串中的约束:
@"[button][invisibleView(5)][button2(==button)]"
然后创建一个约束设置
invisibleView.centerX=superview.centerX
另一个技巧是将按钮的右侧对齐,使其距离superview
的中心为空间大小的一半,将按钮2的左侧对齐,使其距离中心为空间大小的一半超级视图的
只有当你有一个超级视图,它只围绕着你想居中的两个视图时,这才真正起作用。我是从内存中写的,希望所有的信息都是正确的。我使用的是XCode5。下面是我从没有限制开始做这件事的方法:
选择两个按钮并添加约束以设置其高度和宽度
可从第二个窗口访问的“添加新约束”窗口中的宽度
IB画布右下角的按钮
两个按钮仍处于选中状态时,添加约束以设置它们的Y轴
放置。在“添加新内容”对话框中,可以选择上面的空格或下面的空格
约束窗口就可以了
现在选择按钮1并添加对齐约束“水平”
在“添加新路线约束”窗口中的容器中居中“
可从IB画布右下角的第一个按钮访问。
默认情况下,添加的约束的“常量”值为0
我想改变这一点,因为这是错误的
此时,按钮1将有一条黄色条垂直运行
这是一个警告,表明水平中心
按钮的高度不等于容器的水平中心
+约束的常数(0)。垂直条上的数字是按钮离中心的距离。记住这个数字
双击按钮1(灵巧度)上的垂直黄色条
必需)或选择按钮1转到左侧窗格并单击
标尺和“选择并编辑”称为“对齐中心X”的约束
至:“
在标有“常量”的文本框中输入步骤4中的编号。
按钮1现在已经满足了它的所有约束条件
显示。它有宽度、高度、Y(顶部空间或底部空间)
约束),现在是X(水平中心对齐)。按钮2,
然而,它仍然缺少它可以利用的X位置
按钮1
选择按钮2,转到添加新约束窗口,然后简单地设置
按钮1的前导空格(顶部白色框的左侧栏)
您现在应该有两个按钮,它们将始终保持在容器的中心,彼此间隔固定的宽度。基本上,我的UITableViewCell
中有两个UIButtons
,它们位于下方,需要始终居中且宽度相同。这就是我在Xcode 7.2中工作的方式。我正在使用Swift顺便说一下,如果这有什么关系的话
在左边的按钮中,我给了它一个前导和底部约束
在右边的按钮中,我给了它一个尾随和底部约束
在右按钮中,我给了左按钮一个前导空格
最后,在我的右按钮中,我给了左按钮一个等宽度约束
完成了
您也可以通过以下方式实现
1.左键取前导空格,右键取尾随空格。
2.为前导和尾随约束构造出口
__weak IBOutlet NSLayoutConstraint *leadingConstraint;
__weak IBOutlet NSLayoutConstraint *trailingConstraint;
3.计算公式如下所示的常数
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;
如果您有固定宽度的按钮,并且希望两个按钮之间的距离固定,则可以执行以下步骤:
将宽度
和高度
约束
添加到按钮1
示例值:100高度和100宽度
约束
等宽
和等高
按钮1
和按钮2
之间添加水平间距
。或者我们可以从按钮1
向按钮2
添加前导空格。示例值:150
按钮1
并在容器中水平添加约束
,值为-125
约束
如垂直间距
等button1
width
/2)+(水平间距
/2),即100/2+150/2=125
因此,将水平放置在容器中
添加到-125将向左移动按钮
,这将使该布局在屏幕中居中
布局和约束示例图片附在下面:
哦,天哪!这太聪明了!但我想对于奇数个按钮,方法会相似,但略有不同,对吗?或者你可以将它们都放在容器视图中!然后将容器视图居中。这不起作用,因为你假设两个按钮的大小相同。可能是,但可能不是。尽管这样有两倍的我认为杰玛修的答案是正确的