2016-08-03 47 views
1

私は0にトップビューを設定したいので、私はIBOUTLETを同じにして0に設定し、トップビューのクリップはYESに境界を設定しました。自動レイアウト親ビューの高さ変化

しかし、上面図のサブビューの制約ブレーク(ビューなどの間に垂直方向のスペース)

私の質問は、サブビューで親ビューの高さに起因する破る制約を解決する方法である、

私たちは破壊のために低優先度を設定することができるものを知っていますそれ以外の方法はありますか?事前

答えて

1

おかげで上面図および垂直UIStackViewでスクロールビューを置きます。トップビューを非表示にする場合は、topView.hidden = trueと設定します。スタックビューはスクロールビューの上を自動的に上に移動し、上のビューがあったスペースを塗りつぶします。

+0

回答ありがとうございます。アプリケーションもios8もサポートされています。stackviewはiOS9のみがサポートされています –

+0

['TZStackView'](https://github.com/tomvanzummeren/TZStackView)をご覧ください。 –

1

固定高さの制約をTOPVIEWに設定し、その制約定数の値を動的に変更しているため、自動レイアウトで制約を解除する必要があるためです。

あなたは上面図とScrollViewに理想的な制約を設定した後、あなただけの、次のようにあなたの制約に2つのまたは3つの変更を加える必要があるだろう場合は、

ステップ1:

の変更高さの制約( 128 に等しいから)に関して以下の画像で表示として以下

enter image description here

ステップ2:

リンクhereで説明したように、あなたが正しくscrollView制約を設定している場合、あなただけのイコールからBottomSpace制約関係を変更される1つの変更をしなければなりませんスクロールビューの一番下にあるコンポーネント(これはscrollView内にあります)より大きいまたは等しいです。

ステップ3:

上面図の高さ制約の出口を作成して、0及びその逆に128から、その一定値を切り替えます。

これで、期待どおりに動作するはずです。

お手伝いします。

更新

以下に説明するように別の方法として、あなたはまた、他の方法のために行くことができ

ステップ1:

変更上面図の下部の上面図内部の部品のbottomSpace制約の優先順位

ステップ2:

これを証明するには、下の画像に表示としての属性インスペクタから

enter image description here

をクリップサブビュープロパティを選択し、私は小さなデモアプリを行っている、あなたは以下の結果を見ることができます

enter image description here

オレンジ色の表示には、スーパービュー、先行および後続のスペースとスーパービューと高さの制約があります。

Blue Viewは、TopView、Leading、TrailingSpace、およびBottomSpaceをSuperViewに、つまりOrangeView、BottomSpace制約は999の優先度を持ちます。また、Height制約があります。

これはトリックを行います。

+0

同じ高さ定数を128と0にしても問題ありません。問題はTOPVIEW = 0の高さのためにTOPVIEWブレークのサブビューに制約があります –

+0

TOPView内のサブビューにも同じことを適用しますビューの高さが固定されている場合、その関係をEqualからLess equal Equalに変更するだけです。また、制約に識別子を設定して、制約ブレークログで識別子を識別することもできます。 –

+0

どのような垂直スペース!より少ないか同じことをequlにする必要がありますか? –

関連する問題