2016-05-10 7 views
0

私は制約と自動レイアウトを把握できないようです。私は、風景や肖像画のときに2つのオブジェクト間の間隔をiPadで異なるようにすることはできますか?Xcode - iPadの制約 - 風景対ポートレート

私はUIViewに並べて配置しました。肖像画のときには、それらの間隔を40にしたいと思っていますが、幅があるので、風景ではもっと大きくすることができます。

これはポートレートモードのようです。私はそれに満足しています。 Portrait

ここでは風景です。あなたが見ることができるように、画面をいっぱいにするようには見えず、空きスペースがたくさんあります。 Landscape

お勧めはありますか?ありがとうございました!

答えて

0

私はそれを底部とその両側に固定する必要がありました。

ビュー1:

  • 大手:30

  • 下:25

ビュー2:

  • 末尾:30
  • ボトム:25

私は、それらの間のスペース(> = 5)にa> =制約を使用しました。これらの制約のいずれかで定数を増やした場合、ビューは重なります。私はまだランドスケープモードで空きスペースがたくさんあるので最高の状況ではありませんが、私が思いつくのは最高です。

0

間隔制約に40のような一定の値を与えるのではなく、それをインストールするビューの1つの幅のわずかなパーセンテージ、または全体の幅のわずかな割合スーパービュー。そうすることで、画面の幅が(横向きの場合のように)大きくなると、間隔も比例して広がります。

0

@Daniel Hallの回答に加えて、親ビューとお互いに持っている2つの先行エッジと後続エッジを固定することもできることを指摘したいと思います。例えば

まずUIView:第UIViewUIView

から親ビューからリーディングエッジ10ポイントを後縁40点:最初UIViewからリーディングエッジ40ポイントを後縁親から10ポイント表示

デバイスを回転すると、これらの自動レイアウトの制約に基づいてサイズが変更されます。もちろんこの方法では、あなたの2つを正確な割合を超えて伸ばすリスクがありますので、それを賢明に使用してください。

2

制約値の横にある小さな+アイコンをクリックし、別のサイズクラスの異なる値を選択することができます。

または、向きに応じてコードの制約値を変更することができます。

または、優先度を低くして追加の制約を設定してから、横長モードにすると優先度を上げることができます。

+0

私はサイズクラスを使用しようとしましたが、残念ながらポートレート対ランドスケープiPad画面サイズのサイズクラスはありません。私が間違っているなら、私を修正してください。 私はまた、より低い優先順位の制約で作業しようとしました。本質的にはビューを最も近いエッジに固定し、それらの間の間隔より優先順位を低くしました(これは制約よりも大きいか等しい)。最初の画面読み込みでは機能しますが、向きが変更された場合は優先順位がすべて上がります。 私が考える最良の解決策は、プログラムで制約を変更することですが、今のところ解決策が見つかりました。ありがとう。 – galenom

関連する問題