我是新來的可可,我正在編寫自定義InspectorView
。 父視圖(InspectorView
)包含多個子視圖(InspectorCategories
)。如果子視圖更改大小調整父視圖
如果我沒有收縮類別(子視圖),我必須調整大小/重新佈局父母的觀點? 我發現這不可能通過自動調整大小的掩碼 - 這是正確的嗎?
我在父母的視圖中用resizeSubviewsWithOldSize
試過了,但是在調整子視圖的大小時不會調用它。
我怎樣才能實現這種行爲?
我是新來的可可,我正在編寫自定義InspectorView
。 父視圖(InspectorView
)包含多個子視圖(InspectorCategories
)。如果子視圖更改大小調整父視圖
如果我沒有收縮類別(子視圖),我必須調整大小/重新佈局父母的觀點? 我發現這不可能通過自動調整大小的掩碼 - 這是正確的嗎?
我在父母的視圖中用resizeSubviewsWithOldSize
試過了,但是在調整子視圖的大小時不會調用它。
我怎樣才能實現這種行爲?
不,不可能通過自動調整掩碼來完成。自動調整屏蔽定義了當超級視圖改變邊界時視圖的大小調整方式。
子視圖應該讓它的超級視圖知道它需要什麼大小,例如通過委託調用。超級視圖然後應該調整自己和子視圖。
有兩個部分來完成我想你想:
(a)在父視圖,覆蓋sizeThatFits:方法,以便它計算的是圍繞調整大小子視圖適應新的大小。
(b)在子視圖中,重寫SETFRAME:方法和幀尺寸被改變後,它調用[self.superview sizeToFit]來調整上海華,或許是這樣的:
-(void)setFrame:(CGRect)newFrame
{
[super setFrame:newFrame];
[self.superview sizeToFit];
}
這是一個很好的方法UIViews。但是,在NSView中沒有這樣的方法。 – Davyd
感謝您的回答。工程就像一個魅力:) – Razer