2012-12-08 52 views
1

我知道這個框架是一個視圖的框架相對於它的父,邊界是視圖的內部界限(除了滾動視圖的情況下,原點總是[0,0])。NSView - 在什麼情況下邊界和幀*大小*是不相等的?

但是,我不清楚在什麼條件下框架和邊界大小可能會有所不同,如果有的話。是否有官方的Apple文檔說明是否frame.size = bounds.sizeframe.size ?= bounds.size

回答

1

你可以做任何你想要的界限。設想你的視角是一幅畫,你只能通過相機觀看。移動原點將改變您現在通過移動相機可以看到的繪畫部分。縮小尺寸會縮小,以減少可見的繪畫,但看起來更大。擴大尺寸縮小,以便更多的繪畫可見,但它看起來更小。

documentation for bounds

缺省情況下,返回的矩形的原點爲(0,0),其大小接收器的框架矩形的(以點爲單位)....

尺寸相匹配

如果您顯式更改邊界矩形的原點或大小,則此方法不會返回默認矩形,而是返回您設置的矩形。但是,如果向視圖添加旋轉因子,則該因子也會反映在返回的邊界矩形中。

而且從documentation for setBounds:

邊界矩形來確定接收器的座標的框架矩形中系的原點和規模....

調用此方法後,的NSView創建一個內部轉換(或將這些更改附加到現有的內部轉換),以從幀座標轉換爲視圖中的邊界座標。只要兩個座標系統的寬高比保持不變,您的內容就會顯得正常。如果比率不同,您的內容可能會出現偏差。

相關問題