2017-12-12 14 views
0

iPhone X以外では、すべてのデバイスでかなりうまく動作するアプリがたくさんあります。iPhone Xでアプリを実行すると、ビューが「ストレッチ」して奇妙に見えます。それはまた、安全な領域をカバーした。私はそれを安全な領域内のみにすることができますし、バックグラウンド、安全な領域の一部ではない部分を、アプリケーションの通常の背景色でペイントしますか? This is how it looks on iPhone 8, or any other phone which is not XiPhoneのAutoLayout

And this is how it looks on iPhone X.

答えて

1

レイアウトがデバイスのアスペクト比と、より具体的には、その画面の幅に大きく依存ように見えます。私が推測してみると、おそらくあなたのサブビューのサイズとその暫定的なパディングの幅をスーパービューの幅の関数として計算していると言えます。ここでは、サブビューのコーナー半径をハードコーディングまたは誤って計算します'層。

通常、私はこれを設計上の問題と考え、デバイスのアスペクト比に関係なく歪まないようにこれらのビューのサイズを変更する方法を見つけることをお勧めします。 Xのノッチによって証明されるように将来的にサポートする必要があります。

何かを素早く汚れてしまい、現存するコードをできるだけ変更したくない場合は、インターフェイスビルダーまたはコード内のコンテナビューにビューを追加してから、コンテナのアスペクト比をサポートするように選択します。次に、コンテナのスーパービューをコンテナと同じ背景色にし、コンテナをスーパービューに中央揃えることができます。これは事実上、元のアスペクトを保存するためにコンテナの上下にバーを追加することと同等です。私はこれが正直にバンデードであると考えます。完全なシナリオでは、縦横比に関係なくデバイスの幅に適応できる必要があります。

関連する問題