以编程方式更改 Y 位置约束

Posted

技术标签:

【中文标题】以编程方式更改 Y 位置约束【英文标题】:Changing Y position constraints programmatically 【发布时间】:2015-12-11 14:06:55 【问题描述】:

这是在它们之间打开新视图的四个按钮。

我通过 Xcode 设置约束,并想以编程方式更改位置,但它不起作用。我是新人,请帮忙。我用过

[_btn_patientInformation.translatesAutoresizingMaskIntoConstraints: NO];
NSLayoutConstraint *constraintCoordinatesCenterY =[NSLayoutConstraint                                                  constraintWithItem:_btn_patientInformation attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:coordinatesView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:1];

但不幸的是它不起作用。

【问题讨论】:

对要更改的约束使用 outlet 我从 xcode 中设置了所有出口约束,现在想从编码中更改。 【参考方案1】:

为你想改变的约束使用出口。

插座将如下所示:

 @property (weak, nonatomic) IBOutlet NSLayoutConstraint * topPositionConstraint;

将上述约束连接到情节提要中的 Y 约束。

要更改约束,您可以简单地执行以下操作:

  topPositionConstraint.constant=yourValue;

别忘了打电话

    [self.view layoutIfNeeded];

在约束改变之后。

尝试以这种方式设置约束:

选择顶部按钮,并给出前导、尾随、顶部、高度、宽度约束。

现在选择第二个按钮,然后 ctrl 将其拖动到第一个按钮,然后释放鼠标单击,然后选择垂直间距和前导约束。

对第三个按钮执行相同的操作,不同之处在于您 ctrl 将第三个按钮拖动到第二个按钮。

现在要向上或向下移动所有这些按钮,您只需更改第一个按钮的顶部约束即可。

【讨论】:

我想改变 btn 的 y 位置,但它不起作用 如果你真的想改变按钮的顶部约束,不要试图改变按钮框架来改变它的位置 你能把你的按钮截图贴在你的故事板上吗? 这是四个按钮屏幕,当我单击发件人信息按钮时,它会打开带有按钮的小视图,而其他三个按钮会以相同的空间向下移动 你是如何为所有这些按钮设置约束的

以上是关于以编程方式更改 Y 位置约束的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式更改中心 X / Y 的对齐约束的乘数

以编程方式更改约束只会影响视图的可见部分

使用自动布局和约束更改位置

以编程方式更改Mac光标速度

X 位置约束未以编程方式更新 - Xcode 中的 Swift

对子类 UIView 的约束会抛出以编程方式创建的 UILabel 位置