2017-06-21 100 views
0

我一直試圖在所有設備上垂直居中放置一個UILabel,當鍵盤不可見時以及可見時。Swift:基於可見框架更改中心約束條件

我以前嘗試做這個調整頂部約束: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

我的問題是,我如何通過編程改變垂直固定在鍵盤是在所有設備上顯示。

我很掙扎,因爲之前使用的計算方法不能真正用於改變垂直常數。

回答

0

如果你看到中心約束佈局的值,你會發現它等於0,所以確定中心約束的位置是乘數不是常數嘗試應用你的計算乘數屬性,但你會發現乘數屬性是隻讀你不能修改它,但有工作,我希望能幫助你。