3

在代码中,我可以在两个对象之间设置约束,以便它们是相对的......

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:item1
                                                      attribute:NSLayoutAttributeWidth
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:item2
                                                      attribute:NSLayoutAttributeWidth
                                                     multiplier:0.9
                                                       constant:0]];

或者说他们有一个恒定的差异......

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:item1
                                                      attribute:NSLayoutAttributeWidth
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:item2
                                                      attribute:NSLayoutAttributeWidth
                                                     multiplier:1.0
                                                       constant:-30]];

或事件,以便它们关联同一项目的不同属性......

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:item1
                                                      attribute:NSLayoutAttributeWidth
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:item1
                                                      attribute:NSLayoutAttributeHeight
                                                     multiplier:1.0
                                                       constant:0]];

是否可以使用 Interface Builder 应用这些类型的约束?

4

3 回答 3

3

现在可以在 XCode 5.1 中使用。

这是 5.0 的变化。当您添加例如“等宽”约束时,您现在可以转到检查器,有一个新字段,您可以在其中输入乘数值(以及其他新内容),从而创建一个可以与其容器相关的按比例大小的视图或层次结构中的其他视图。

于 2013-11-20T17:57:02.350 回答
3

在界面生成器中是可能的。选择有问题的 IB 项目并检查其约束。选择和编辑将显示约束的乘数设置。

AutolayoutRelativeMultiplierInterfaceBuilder

于 2014-05-19T03:38:46.200 回答
0

请注意,您也可以输入百分比,例如 50% 侧箭头允许以 0.1 或 1% 递增和递减

设置相对于超级视图(或图像视图)中心 x,y 的 % 乘数(常数 0)很方便,以允许标签或文本字段跟踪视图或图像中的特定位置,而不管其最终位置或比例如何。

您可以通过选择主视图并转到:编辑器 -> 解决自动布局问题 -> 更新框架来查看约束的作用,不同的元素将根据它们的约束移动。

有时 IB 会即时更新,但通常不会。

于 2014-07-25T20:52:22.437 回答