2011-09-27 133 views
0

我是新來的可可,我正在編寫自定義InspectorView。 父視圖(InspectorView)包含多個子視圖(InspectorCategories)。如果子視圖更改大小調整父視圖

如果我沒有收縮類別(子視圖),我必須調整大小/重新佈局父母的觀點? 我發現這不可能通過自動調整大小的掩碼 - 這是正確的嗎?

我在父母的視圖中用resizeSubviewsWithOldSize試過了,但是在調整子視圖的大小時不會調用它。

我怎樣才能實現這種行爲?

回答

0

不,不可能通過自動調整掩碼來完成。自動調整屏蔽定義了當超級視圖改變邊界時視圖的大小調整方式。

子視圖應該讓它的超級視圖知道它需要什麼大小,例如通過委託調用。超級視圖然後應該調整自己和子視圖。

+1

感謝您的回答。工程就像一個魅力:) – Razer

2

有兩個部分來完成我想你想:

(a)在父視圖,覆蓋sizeThatFits:方法,以便它計算的是圍繞調整大小子視圖適應新的大小。

(b)在子視圖中,重寫SETFRAME:方法和幀尺寸被改變後,它調用[self.superview sizeToFit]來調整上海華,或許是這樣的:

-(void)setFrame:(CGRect)newFrame 
{ 
    [super setFrame:newFrame]; 
    [self.superview sizeToFit]; 
} 
+0

這是一個很好的方法UIViews。但是,在NSView中沒有這樣的方法。 – Davyd

相關問題