13

コンソールに次の出力が表示されます

"<NSAutoresizingMaskLayoutConstraint:0x100510500 h=--& v=&-- H:|-(0)-[NSView]
    (Names: NSView:0x1016ab760, '|':NSClipView:0x1016a26b0 )>
    (Actual Distance - pixels):0"

通常、制約のログ メッセージの読み方は理解しています。しかし、autoresizingMask 制約は常に私を混乱させます。ログ出力の次の文字は、自動サイズ変更マスクにどのように対応していますか?

h=--& v=&-- H:|-(0)-[NSView]

自動サイズ変更マスク レイアウト制約の読み取りについて説明していない WWDC 2012 のビデオをいくつか見ました。

4

1 に答える 1

1

jrturton は、回答のデバッグ出力の最初の部分について説明しています (コメントを参照)。

h=--& v=&--

2 番目の部分は、すべての autolayout 制約で同じです。

H:|-(0)-[NSView]

これは、マスクが制約に変わった方法の詳細を示しているだけです。「H」は水平を意味し、「|」は「|」を意味します。-(0)- はビューが入っているコンテナ (この場合は NSClipView) を意味し、-(0)- はビューの左側が 0 ピクセルに制限されていることを意味します (この場合は一般的な NSView)。

そのため、ビューの左端をスーパービューに直接結合する制約が追加されました。(右端は拘束されていないため、自動サイズ変更マスクが示すように、そよ風に揺れます。)

于 2014-01-07T11:16:19.127 に答える