iOS自动布局调整标签大小及其间距

iOS自动布局调整标签大小及其间距,ios,uiview,ios7,uilabel,autolayout,Ios,Uiview,Ios7,Uilabel,Autolayout,我在iOS 7上使用Autolayout来设计我的视图。 我可以自动调整视图和所有对象的大小,但我有一个问题: 我有4个标签,一个挨着另一个。这些标签位于UIView中,当我的UIView调整大小(宽度)时,我希望标签自动移动,但仍然可见 事情是这样的: 当UIView正在调整大小时: 你知道我的意思吗?我将右标签固定在视图的右侧。它起作用了。 对于第一个标签,这不是问题。 但是对于标签2和3,我不知道如何调整它们之间的最小空间 我们非常感谢您的所有建议和想法。多谢各位 问候,, Lapin

我在iOS 7上使用Autolayout来设计我的视图。 我可以自动调整视图和所有对象的大小,但我有一个问题: 我有4个标签,一个挨着另一个。这些标签位于UIView中,当我的UIView调整大小(宽度)时,我希望标签自动移动,但仍然可见

事情是这样的:

当UIView正在调整大小时:

你知道我的意思吗?我将右标签固定在视图的右侧。它起作用了。 对于第一个标签,这不是问题。 但是对于标签2和3,我不知道如何调整它们之间的最小空间

我们非常感谢您的所有建议和想法。多谢各位

问候,,
Lapinou.

使用此UIView类别:

你可以很容易做到这一点

NSArray *views = @[ button1, button2, button3, button4 ];
[self.containerView spaceViews:views onAxis:UILayoutConstraintAxisHorizontal withSpacing:10 alignmentOptions:0];

编辑:事实上。。。这使得每个按钮的宽度都是动态的,可能无法完全满足您的需要。

您可能需要在-viewdlayoutsubviews内手动更改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];

标签2会有一个像上面贴的一样的常数,但是标签3会有一个负值。

我认为你必须使用
等宽度
约束,将左侧按钮粘贴到左侧,将右侧按钮粘贴到左侧,最后为每个按钮添加
水平空间约束

那应该有用


太棒了!这个项目真的很有帮助。非常感谢。