【问题标题】:Re-position uilabel重新定位 uilabel
【发布时间】:2017-12-16 13:26:36
【问题描述】:

如果没有二维码显示,我希望左侧显示“数字”和“状态”(已为图像和标签设置了约束。)

没有二维码的结果:
.

二维码的结果将是:

【问题讨论】:

标签: ios objective-c xcode uilabel constraints


【解决方案1】:

很简单,只要设置二维码图片的宽度约束,如果二维码不可用,则设置宽度恒定=0,

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

【讨论】:

    【解决方案2】:

    您可以通过附加到视图左侧的第二对约束来做到这一点。

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

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        这个问题很简单,用 UIStackView 就可以实现隐藏/显示。

        例如:如果存在 QR 码,则显示或隐藏 QR 码。 标签(数字和状态和图像)将自动调整。以下是屏幕的缩写,以便更好地理解。

        IBOutlet UIView *qr_view; // Image or View
        

        案例一:二维码呈现

        qr_view.hidden = NO;// Show
        

        案例 2:QR 不存在

         qr_view.hidden = YES;// hide
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多