2011-10-27 110 views
0

我有一個子類UIView不會繪製它的子視圖。或者至少,它沒有顯示它的子視圖。整個視圖從筆尖加載。子視圖不繪製在子類UIView

另外,奇怪的是,它不會繪製我在IB中設置的背景。 (我使用Xcode 4.2)。

但它會繪製父視圖,我在awakeFromNib中指定了背景,邊框和邊角等。

opaque屬性設置爲NO。任何建議表示讚賞!

+0

我會在initFromNib方法周圍放一些'NSLog()'語句,看看它們是否正在觸發... – bdares

回答

0

當您從筆尖加載視圖時,例如使用

[[NSBundle mainBundle] loadNibNamed: owner:self] 

你仍然需要再添加加載視圖作爲子視圖當前在窗口中該視圖可見變爲可見的景色之一。從你的主人那裏得到一個出口,確保視圖被加載並且你有一個參考 - 但是這不會導致它被作爲子視圖添加到所有者。

所以(假設自我是父視圖和筆尖所有者)首先要確保你一定在從業主到視圖筆尖設置出口被加載,然後你正在做一個

[self addSubview:loadedView] 

(其中加載的視圖是在所有者是自己的筆尖視圖)。

0

我想你可能會得到那個結果,如果你重寫drawRect。試着評論一下,看看會發生什麼。如果您想要繪製自己的內容幷包含子視圖,則可以通過在drawRect的開頭調用[super drawRect]來完成此操作。