如何为目标c中的按钮设置动态约束

时间:2017-07-19 15:03:46

标签: ios objective-c button constraints

我有简单的UIView,它有两个按钮,名为" Button1"和" Button2"。 在某些条件下(假设X条件),我需要显示两个按钮,如图1所示。

在另一种情况下(假设Y条件),我需要隐藏" Button2"并且还将它放在UIView的中心,如图2所示。

如果你能为我提供一些例子,那对我来说将非常有帮助。 我只需要为iPhone实现目标。

由于

enter image description here enter image description here

2 个答案:

答案 0 :(得分:0)

我已经完成了3个按钮

您需要提供以下约束。

  • btn1导致其超级视图

    btn2导致btn1尾随

    btn3导致btn2尾随

    btn3落后于其超级视图

    btn1等于btn2的宽度 - >优先级999

    btn2等于btn3的宽度 - >优先级999

    btn1顶级到它的超级视图 - >优先级999

    btn2超越其超级视图

    btn3超越其超级视图

    btn1宽度约束 - >优先级:750,常数 - > 0参加IBOutlet

对于所有3个按钮,您还需要给出高度限制。

此后当条件Y发生时

设置btn1宽度约束优先级:1000您已完成

答案 1 :(得分:0)

为此,您需要有两组约束,每个布局一个(一个按钮和两个按钮)。当视图发生变化时,您将在这些集合之间切换。

当您想要切换时,您需要停用第一个并激活第二个。您可以使用deactivateConstraints:activateConstraints:执行此操作。对于只有一个按钮的布局,您还需要通过调用其上的removeFromSuperview来删除视图中的第二个按钮(并在切换回显示两个按钮时重新添加它)。

如果您使用的是Interface Builder,则需要为在此处创建的约束创建IBOutlet,以便您可以访问它们。您可能还希望仅在Interface Builder中创建一组约束,因为如果它们同时处于活动状态,它们将相互冲突。

如果您不熟悉如何在代码中创建约束,这可能会帮助您Programmatically Creating Constraints