我有两个按钮,我想将它们作为一个组集中在他们的超级视图中。
以视觉格式表示,我想要类似|-*-[button1]-5-[button2]-*-|
where*
应该相等并由 AutoLayout 自动确定的内容。
我目前有三种解决方法,它们看起来都不是很优雅
制作 UIView 的两个按钮子视图并将该视图居中
手动计算值
*
并手动更新约束将两个按钮与超级视图的中心对齐,并使用从按钮宽度手动计算的偏移量
还有其他建议吗?
我有两个按钮,我想将它们作为一个组集中在他们的超级视图中。
以视觉格式表示,我想要类似|-*-[button1]-5-[button2]-*-|
where*
应该相等并由 AutoLayout 自动确定的内容。
我目前有三种解决方法,它们看起来都不是很优雅
制作 UIView 的两个按钮子视图并将该视图居中
手动计算值*
并手动更新约束
将两个按钮与超级视图的中心对齐,并使用从按钮宽度手动计算的偏移量
还有其他建议吗?
我认为我过于关注将两个按钮的中心与它们的超级视图对齐。当我开始考虑边缘时,我想出了这个
[NSLayoutConstraint constraintWithItem:button1
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:superview
attribute:NSLayoutAttributeCenterX
multiplier:1
constant:-2.5]];
[NSLayoutConstraint constraintWithItem:button2
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:superview
attribute:NSLayoutAttributeCenterX
multiplier:1
constant:2.5]];
这使两个按钮居中,superview
中间间距为 5。
您可以居中一个虚拟元素(隐藏视图),然后将每个按钮向左和向右偏移。