2017-06-21 4 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に等しくなるので、中心拘束の位置を決めるのは定数ではありません。計算を乗数プロパティに適用しようとしますが、乗数プロパティは読み込み専用ですあなたはそれを修正することはできませんが、そのための回避策があります、私はあなたを助けることを願っています。

関連する問題