1. ホーム
  2. ios

[解決済み] autolayout - ビューの高さをスーパービューの高さの半分に相対させる

2022-05-17 13:30:11

質問

最近、オートレイアウトにハマっているのですが、本当に些細な問題例と思われるものに行き詰っています。私は、画面の上部に座って、画面の高さの半分を占めるようにしたいビューを持っています。オートレイアウトの前は単純で、所定の位置に固定し、スーパービューがリサイズされたときに垂直に展開するように指示するだけです。

さて、どうすればいいのか、どうしてもわかりません。これをセットアップしようとすると、次のようになります。

下部スペース制約は "equals 284" に設定されています。これは、iPhone4 レイアウトに変更すると、画面の下部に 284 ポイントのスペースを維持し、ビューが画面の半分のサイズでなくなるように縮小されるので、絶対的で絶対に役に立ちません。そして、その制約を他のビューの高さの何分の一かに等しくなるように設定する方法がないのです...。

しばらく悩んだ後、これを行う唯一の方法は、このビューの下に別のビューを導入し、それらの高さを等しく固定し、それらを互いの上下に座らせて、次に2番目の(底)ビューを見えなくするように設定することです... これは、少し醜いと思います!

何か明らかなことを見逃していませんか?

どのように解決するのですか?

少なくとも] Xcode 5.1.1 以降の IB では、これが可能になりました。私はこれを理解するのに時間がかかりましたが、実はとても簡単なことなのです。

最初に、基本的なトップ アライメント制約を作成します (通常のように、ボトム、レフト、およびライト制約も設定する必要があります)。 . 次に、制約を選択し 属性 インスペクタに移動します。

次に、倍率を調整します。もしスーパービューの50%にしたい場合は 1 のままにしておくと、スーパーの中心で整列されるからです。これはまた、あまりにも他のパーセントであるビューを作成するのに最適な方法です(スーパー ビューの25%のような)。