2013-02-23 90 views
13

我看到控制檯如何讀取NSAutoresizingMaskLayoutConstraint的日誌輸出?

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

下面的輸出通常我知道如何讀取日誌消息的約束。但autoresizingMask約束總是讓我困惑。日誌輸出中的以下字符如何對應於自動調整大小掩碼?

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

我看了好WWDC 2012的視頻,它們並沒有完全解釋讀取自動調整大小面具佈局約束。

+8

可能的重複[調試autolayout時自動調整掩碼字符串的含義是什麼,例如h = - & v = - & - ?](http://stackoverflow.com/questions/14290100/when-debugging-autolayout-what-is-the-meaning-of-the-autoresizing-mask-strings-s) – jrturton 2013-02-23 19:05:09

+3

請看我的在相關問題中回答。 – jrturton 2013-02-23 19:05:27

回答

1

jrturton描述了他的回答調試輸出的第一部分(見註釋)

H = - & V = & -

第二部分是對於同一所有自動佈局約束:

H:| - (0) - [的NSView]

這只是詳細說明如何將遮罩變爲約束。 「H」表示水平,「|」意味着你的視圖所在的容器(在本例中是一個NSClipView), - (0) - 意味着它被約束爲視圖左邊的0像素(在本例中是一個通用的NSView)。

因此,一個約束被添加,視圖的左邊緣直接綁定到它的超級視圖。 (由於右邊緣是不受約束的,所以它會在微風中翻轉,就像自動調整掩碼所說的那樣)。

+0

注意到NSLayoutConstraint對象的'description'方法反映了它的構造方式也很重要。因此,即使您創建兩個語義上相似的約束,它們在構造不同時的日誌輸出中也會有所不同。 – toto 2014-03-19 17:20:37