私は、キーボードが見えないときと見えるときの両方で、すべてのデバイスに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
を、それが働いているはずですが、それは完全に垂直方向に中央ではなかったです。
下記のように、中央には表示されません。
私はそのアイデアを廃棄し、縦方向にセンタリングしてみました。キーボードが以下のように見えなくなっても、すべてのデバイスで完全に機能しました。
今私の問題は、キーボードは、すべてのデバイス間で表示されているとき、私はプログラム的に垂直方向の定数を変更する方法、です。
私が以前に使っていた計算法では、実際には垂直定数を変更することはできないので、苦労しています。