重新定位uilabel

时间:2017-07-12 08:23:03

标签: ios objective-c xcode uilabel constraints

我想要“数字”&如果没有QRCode显示,则显示在左侧的“status”(已为图像和标签设置了约束。)

没有QRCode的结果:
enter image description here

QRCode的结果将是:
enter image description here

4 个答案:

答案 0 :(得分:3)

如果QR码不可用,则只需制作QRcode图像的宽度约束即可轻松实现常数= 0,

enter image description here

  @IBOutlet weak var width: NSLayoutConstraint!
    if (your condition)
    {
       width.constant = 0
    }
    else
    {
       width.constant = 30
    }

答案 1 :(得分:2)

您可以使用附加到视图左侧的第二对约束来完成此操作。

如果没有QRCode View,则为该约束添加出口并将常量值设置为所需的偏移量(来自代码)。

另一种方法是向左侧添加MoreThanOrEquel约束(例如> = 10) 比另一个具有常数值10的约束,但优先级较低。

当您删除QRCode视图时,它会破坏它的约束,左侧的约束会影响并将您的标签移动到左侧。

答案 2 :(得分:1)

您可以通过以下方式对标签进行约束:

即。对图像的约束导致左侧+图像宽度,两个标签也都通向左侧。然后,如果没有QR码调整标签,则需要约束值。

或者您可以使两个标签都指向图像视图并将图像视图宽度约束设置为0.

pic

答案 3 :(得分:0)

这个问题非常简单,可以使用UIStackView实现隐藏/显示。

对于Ex:如果存在QR码显示或者隐藏QR码。 标签(编号和状态和图像)将自动调整。以下是屏幕简短以便更好地理解。

enter image description here

IBOutlet UIView *qr_view; // Image or View

案例1:QR礼物

qr_view.hidden = NO;// Show

enter image description here

案例2:QR不存在

 qr_view.hidden = YES;// hide

enter image description here