【问题标题】:Swift: Change centre constraint based on visible frameSwift:根据可见框架更改中心约束
【发布时间】:2017-06-21 13:23:30
【问题描述】:

我一直在尝试将 UILabel 在所有设备上垂直居中,无论是键盘不可见还是可见时。

我之前尝试通过这样做来调整顶部约束:self.emptyStateMessageTopConstraint.constant = (self.view.frame.size.height / 2 ) - (self.emptyStateMessageHeight.constant / 2 )

当键盘不可见时,这应该给了我中间点。

当键盘可见时我这样做了:

self.emptyStateMessageTopConstraint.constant = (self.view.frame.size.height - keyboardHeight) / 2 - self.emptyStateMessageHeight.constant / 2

理论上,它应该可以工作,但它并非完全垂直居中。

如下所示,它没有居中。

我放弃了这个想法并尝试垂直居中。当键盘不可见时,它可以在所有设备上完美运行,如下所示。

现在我的问题是,当键盘在所有设备上可见时,如何以编程方式更改垂直常数。

我很苦恼,因为我之前使用的计算不能真正用于改变垂直常数。

【问题讨论】:

    标签: ios iphone swift nslayoutconstraint


    【解决方案1】:

    如果您看到中心约束布局的值,您会发现它等于 0,因此确定中心约束的位置是乘数而不是常数尝试将您的计算应用于乘数属性,但您会发现乘数属性是只读的,因此您无法对其进行修改,但是有解决方法,希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 2017-02-08
      • 1970-01-01
      • 2019-02-02
      • 2014-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多