【问题标题】:iOS Autolayout resize labels and space between themiOS Autolayout 调整标签大小和它们之间的空间
【发布时间】:2014-02-19 13:46:43
【问题描述】:
我在 iOS 7 上使用 Autolayout 来设计我的视图。
我可以自动调整视图和所有对象的大小,但我有一个问题:
我有 4 个标签并排放置。这些标签在 UIView 中,当我的 UIView 调整大小(宽度)时,我希望我的标签自动移动,但仍然可见。
事情是这样的:
当 UIView 调整大小时:
你知道我的意思吗?我将正确的标签固定在视图的右侧。有用。
对于第一个标签,这不是问题。
但是对于标签2和3,我不知道如何适应它们之间的最小空间。
所有建议和想法都非常感谢。谢谢。
问候,
拉皮努。
【问题讨论】:
标签:
ios
uiview
ios7
uilabel
autolayout
【解决方案1】:
使用此 UIView 类别:https://github.com/jrturton/UIView-Autolayout
你可以很容易地做到这一点......
NSArray *views = @[ button1, button2, button3, button4 ];
[self.containerView spaceViews:views onAxis:UILayoutConstraintAxisHorizontal withSpacing:10 alignmentOptions:0];
编辑:实际上...这使得每个按钮的宽度都是动态的,可能无法完全满足您的需求。
【解决方案2】:
我认为您必须使用Equal Widths 约束并将左按钮粘贴到左侧,右侧按钮相同,最后每个按钮都使用Horizontal Space Constraint 等于0。
应该可以的...
【解决方案3】:
您可能需要在 -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 会有一个像上面发布的常量,但 label 3 会有这个常量作为负值。