2011-04-01 152 views
0

我有一個擴展名爲TouchView的UIView的類。
該視圖通過Interface Builder在屏幕上顯示。UIView - 設置成員變量默認值

我在TouchView中有一個變量。我怎樣才能給這個變量默認值?
我的功能 - (id)initWithFrame:(CGRect)frame;似乎並沒有被調用。
UIView中是否有任何函數總是會被調用,所以我可以在那裏初始化我的變量?

感謝,
三通

回答

0

看的文檔爲-initWithFrame:

-initWithFrame:

討論

新的視圖對象必須插入到窗口的視圖層次纔可以使用。如果以編程方式創建視圖對象,則此方法是UIView類的指定初始值設定項。子類可以重寫此方法以執行任何自定義初始化,但必須在其實現開始時調用超級方法。

如果使用Interface Builder來設計接口,那麼當您的視圖對象隨後從nib文件加載時,不會調用此方法。 nib文件中的對象被重構,然後使用其initWithCoder:方法進行初始化,該方法修改視圖的屬性以匹配存儲在nib文件中的屬性。有關如何從nib文件加載視圖的詳細信息,請參閱資源編程指南。

如果您的邏輯屬於對象初始化期間,則使用-initWithCoder:。用戶-awakeFromNib:如果您的邏輯需要加載對象的出口已經被設置。

1

當Interface Builder中解包筆尖和實例化自定義類,-initWithCoder:將被調用。嘗試覆蓋的initWithCoder:代替initWithFrame:方法