2016-09-02 8 views
0

NSStackView定期NSView、すなわちclippingResistancePriorityhuggingPriority.ドキュメントは、彼らが何をすべきか、彼らがためだと何多少合理的な説明を提供して比較した2つの追加の優先順位を持っています。NSStackViewとコンテンツハグ優先

しかし、4つの優先順位は少し過剰です。

は今、彼らは言及言ったドキュメントで:

スタックビューには固有のコンテンツのサイズを持っていないと、設定可能なコンテンツの圧縮抵抗を持っていません。スタックビューでsetContentCompressionResistancePriority:forOrientation:メソッドを呼び出すことは効果がありません。

ただし、contentHuggingPriorityが影に残っています。 NSStackViewのように、これにも反応しないか、少なくとも私はそれをすることができませんでした。

誰でも確認してもらえますか?

答えて

1

はい、これは正しいです。 NSViewのから継承されたコンテンツ制約の優先順位:

- (NSLayoutPriority)contentHuggingPriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7); - (NSLayoutPriority)contentCompressionResistancePriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);

はNSStackViewが持っていないビューのintrinsicContentSizeに基づいて作成された制約にのみ適用されます。あなたとドキュメンテーションに言及しているように、彼らは効果がありません。 (NSStackViewをサブクラス化して、値を与えるためにintrinsicContentSizeをオーバーライドしない限り)

+0

ありがとう。ねえ、私たちがいる間、多分あなたはNSStackView'sについて何かを明確にするのに役立つでしょうか? "NSLayoutPriorityRequired'のデフォルト値より低いクリッピング抵抗を設定し、すべてのスタックビューのビューの可視性優先度を 'NSStackViewVisibilityPriorityMustHold'に設定します。これはまったく真実ではありません。私にとっては、スタックビューは、クリッピング抵抗が500未満のときにのみ、サブビューのクリッピングと隠蔽を開始します。たぶんあなたはこのようなことについて何らかの洞察を持っているかもしれませんし、どこから(wwdcとは別に)、それらを明確にすることができますか? –

+0

クリッピング抵抗の優先順位は、ウィンドウの制約の優先順位の残りの部分に反映されます。 <必須ですが、クリップすることが可能になり、スタックビューが相互作用している他の制約の優先順位に依存するだけです。 500#は、DragThatCanResizeWindowの優先度が510で、WindowSizeStayPutが500であるため、スタックビューがウィンドウのサイズに合わせてサイズが変更されているように見えます。 – Taylor

+0

自動レイアウトガイドでは、 ://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/AnatomyofaConstraint.html#//apple_ref/doc/uid/TP40010853-CH9-SW19さまざまなNSLayoutPriority定数には、値と意味の意味を記述するヘッダーコメントもあります – Taylor