2

Autolayout を使用してボタンがクリックされたかどうかに基づいて、次の図のビュー #1​​ を非表示にして表示しようとしています。誰でもこれを行う方法を知っていますか?

ビュー #2 に 2 つの NSLayoutConstraints を設定しようとしました。1 つはビュー #1​​ とビュー #2 のスーパービューの上部に関連付けられ、もう 1 つはビュー #1​​ の下部に関連付けられています。ビュー#1を非表示にするNSLayoutConstraintsですが、それは何もしていないようです。

アドバイスをいただければ幸いです。私は主に IB でこれを行おうとしていますが、プログラムによる解決策も歓迎します。

参照用の写真:

テストを見る

4

3 に答える 3

1

10.11 以降が必要な場合は、Interface Builder の NSStackView で [非表示のビューを切り離す] を選択する (またはdetachesHiddenViews = YESプログラムで設定する) ことができます。

次に、ビュー #1​​ を に設定するhidden = YESと、スタック ビューが自動的に再レイアウトされ、ビュー #2 がより多くのスペースを占有します (スタック ビューの高さが固定されていると仮定します。そうでない場合、スタック ビューの高さが低くなります)。


10.10 以前をサポートする必要がある場合は、次の方法でビューを非表示にできます。

[stackView setVisibilityPriority:NSStackViewVisibilityPriorityNotVisible forView:view1];

そして、次の方法で再度表示します。

[stackView setVisibilityPriority:NSStackViewVisibilityPriorityMustHold forView:view1];
于 2016-06-03T23:00:35.137 に答える