2017-03-13 4 views
1

私はInterface Builderでautolayoutに苦労しています。リーディング/トレーリングディメンションが小さすぎるまで、最大幅で表示を維持するには?

私は次のようなレイアウトを持っています:左/右マージンが少ないし、30になっていない限り
私は、UILabelは300の幅を持つようにしたい:私は達成したい何

------------------------------- 
|        | 
| _____________________ | 
| |     | | 
|<-->|  UILabel  |<-->| 
| |     | | 
| --------------------- | 
| <-------------------> | 
------------------------------- 

。右/左マージンはいつも私が試した何30

になりますので、その場合はUILabelの幅は小さくなければならない:
UILabel幅:Less then or equal: 300
左/右をリード/末尾:Greater than or equal: 30

これは360の幅に合わないレイアウトで動作しますので、UILabelが小さくなります。しかし、私は400幅が利用可能なような場合、UILabelは280になり、先頭/後尾は50になります。

私は異なる優先度で実験しましたが、実際の効果はありません。私もUILabelの幅の制約をequalに設定しようとしましたが、それは360より小さい幅では機能しませんでした。

この問題の解決策はありますか?

+0

先行/後続の制約を30に設定するだけで、幅の制約の優先度を750に設定してみてください。この方法では、ビューのサイズに関係なく、左右の制約は30になります。 – Prientus

+0

[抱擁priotity](http://stackoverflow.com/questions/15850417/cocoa-autolayout-content-hugging-vs-content-compression-resistance-priority)これはあなたの問題を解決する必要があります。 – Axel

答えて

2

これを試してみてください...あなたのラベルに:両方の大手および以上に末尾の設定

  • :30
  • セット幅300に、999

enter image description hereの優先順位で

enter image description here

そのになります。

+0

ええ、これが私が最初にやることだと確信しています。それが効果があるかどうか教えてください。 –

+0

最初は動作しませんでしたが、ラベルを削除して読み込み、ソリューションを適用しました。今それは完璧に動作します! – Peterdk

+0

Xcode 9では動作しません。確認してください。 –

0

UILabelの幅を300とし、優先度をHighに設定します。 左/右先頭/後尾:30Requiredの優先度。 これは動作するはずです。

関連する問題