2016-06-01 3 views
4

私は3つのビュー(A、B、C)を水平に並べました。 Aは固定幅を持ち、Bは最大幅を持ち、Cは最小幅を持ち、すべての残りのスペースを画面の幅に埋めます。Autolayoutが小さすぎるとビューを非表示にできますか?

Bはアスペクト比を維持したまま拡大縮小された画像です。

大きな画面では、Bが最大サイズに達して大きく見えます。非常に小さな画面では、Bは完全に消えてしまいますが、これは問題ありません。しかし、この2つの間では、Bが非常に小さな画像として表示されることがあります。

「Bの幅が20ピクセル未満の場合は、すべて隠す」とはどういうことが言えますか?

(私はiOSの7をサポートするために持っているので、私はUIStackViewを使用しないソリューションを好むだろう。)

+0

Bの幅をチェックしてB.hidden = trueを隠すことはできませんか? – idocode

+1

可能であれば、私はむしろ純粋なAutolayout制約でそれをやりたいのです。 – teedyay

+1

小さな画面サイズでBを消したい場合。次に、wCompactとhRegularで、B幅をゼロに変更します。 – Irfan

答えて

0

そのワイトが閾値未満である場合はありません、だけで自動レイアウトビューを隠すことができません。 コメントに記載されているように、幅をチェックするそのような依存関係を処理し、それを条件付きで隠す必要があります。

+1

これを拡張できますか?私は幅を確認するコードを書くべきか分からない。 – teedyay

0

autoLayoutを使用すると、すべての状況に適したレイアウトを1つ定義する必要があります。つまり、適応可能です。 「幅が狭ければ...そうです...」という文字列はありません。文字列や芽を使用しているときは、それを使用しますが、今日は使用しません。 あなたが直面している特定のシナリオでは、私は "B"が20以下にならないように制約を設定します。 "a"と "c"を広げると "B"が消えます。

1

あなたの制約のためにこれをいくつかの優先順位で行うことができます。ビューを満たしていないときにブレークさせ、幅がゼロの制約を「最低優先順位」に設定します。

関連する問題