我在iOS 7上使用Autolayout来设计我的观点。 我可以自动调整视图大小和我的所有对象,但是我有一个问题: 我有4个标签,一个在另一个旁边。这些标签在UIView中,当我的UIView调整大小(宽度)时,我希望我的标签自动移动,但仍然可见。
这是事情:
当UIView正在调整大小时:
你知道我的意思吗?我在视图的右侧修复了正确的标签。有用。 对于第一个标签,这不是问题。 但对于标签2和3,我不知道如何调整它们之间的最小间距。
所有的建议和想法都很受欢迎。谢谢。
此致 Lapinou。
答案 0 :(得分:1)
使用此UIView类别:https://github.com/jrturton/UIView-Autolayout
你可以很容易地实现这一目标......
NSArray *views = @[ button1, button2, button3, button4 ];
[self.containerView spaceViews:views onAxis:UILayoutConstraintAxisHorizontal withSpacing:10 alignmentOptions:0];
编辑:实际上......这使得每个按钮的宽度都是动态的,可能无法完全满足您的需求。
答案 1 :(得分:1)
我认为您必须使用Equal Widths
约束,并将左侧按钮放在左侧,右侧按钮则相同,最后每个按钮等于0,Horizontal Space Constraint
。
这应该有用......
答案 2 :(得分:0)
您可能需要在-viewDidLayoutSubviews中手动更改NSLayoutConstraint对象的常量属性。我假设标签没有固定的宽度,所以它们之间不会有一个恒定的空间。看起来你想要它们在彼此的象限中,第一个和最后一个标签与边缘有一个固定的距离。也许标签2和3可以水平居中于容器,然后被容器的宽度/ 2偏移。
[NSLayoutConstraint constraintWithItem:self.label2
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:self.view.frame.size.width/2.0];
label2会有一个像上面发布的常量,但标签3会将此常量作为负值。