Swift:基于可见帧更改中心约束

时间:2017-06-21 13:23:31

标签: ios iphone swift nslayoutconstraint

我一直试图在所有设备上垂直居中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

从理论上讲,它应该有效,但它并非完全垂直居中。

如下所示,它不是居中的。

enter image description here

我废弃了这个想法并尝试垂直居中。当键盘不可见时,它在所有设备上都能很好地工作。如下所示。

enter image description here

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

我很挣扎,因为我以前用过的计算实际上并不能用来改变垂直常数。

1 个答案:

答案 0 :(得分:0)

如果你看到中心约束布局的值你会发现它等于0所以确定中心约束的位置是乘数不是常数尝试将你的计算应用于乘数属性,但你会发现乘数属性是只读的所以你不能修改它,但有解决方法,我希望能帮到你。