我有简单的UIView,它有两个按钮,名为" Button1"和" Button2"。 在某些条件下(假设X条件),我需要显示两个按钮,如图1所示。
在另一种情况下(假设Y条件),我需要隐藏" Button2"并且还将它放在UIView的中心,如图2所示。
如果你能为我提供一些例子,那对我来说将非常有帮助。 我只需要为iPhone实现目标。
由于
答案 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 。