从中间屏幕开始对齐UIVIew

时间:2013-11-20 20:51:10

标签: ios uiview

我想做UIViews,UILabels等从中间屏幕开始使用InterfaceBuilder这样对齐......

蓝色 - 中间屏幕

红色 - 从中​​间向屏幕边框对齐的控件。

enter image description here

可能需要什么约束(S)?

3 个答案:

答案 0 :(得分:1)

float middle = self.view.bounds.size.width/2;

for (int i = 0; i < 10; i++) {
     UIView* view = [[UIView alloc] initWithFrame:CGRectMake(middle, 0.0 + (75.0 * i),  100.0, 50.)];
     [self.view addSubview:view];
}

非常简单,只需将x位置设置为CGRect中的屏幕中间

即可

答案 1 :(得分:1)

您可以将该顶视图赋予屏幕左边缘约束,其值为屏幕宽度的一半。然后,您可以选择所有视图,并在画布右下角的“对齐”按钮的“添加新对齐约束”部分下选择“前导边缘”。

答案 2 :(得分:1)

您基本上是在寻找每个孩子的前沿,使其成为父母宽度的一半。

根据文档,constraintWithItem:...使用公式attribute1 == multiplier × attribute2 + constant,因此对于每个子视图,您可以使用约束来执行此操作:

[NSLayoutConstraint constraintWithItem:view
                             attribute:NSLayoutAttributeLeading
                             relatedBy:NSLayoutRelationEqual
                                toItem:view.superview
                             attribute:NSLayoutAttributeWidth 
                            multiplier:0.5
                              constant:0]

您可以创建一个子视图来托管具有一个约束的所有子项,而不是为每个子项执行一次。

就“接口”构建器而言,Xcode 5中没有任何内容。 0 允许您执行此操作,但您应该检查开发人员程序以获取测试版。