如何初始化自定义GUI类?

时间:2011-07-18 16:19:40

标签: objective-c class user-interface initialization

我正在开发一款iPad应用程序。

现在我遇到了以下问题。我为UIScrollView创建了一个“自定义类”。因此,在我的nib文件中,我添加了默认UIScrollView并将Custom Class设置为 MultiSelectView (这是我创建的自定义类)。屏幕截图here

所以在我的 MultiSelectView 中,我添加了一些我想要使用的方法。这有效!

问题在于我想知道如何在这些方法中初始化我需要的某些对象。似乎- (id)initWithFrame:(CGRect)frame {}未被调用,- (void) viewDidLoad {}也没有。

因此,有没有办法初始化自定义(GUI)类?

2 个答案:

答案 0 :(得分:2)

当您从.xib文件取消归档视图时,它不会发送-initWithFrame:,正如您所注意到的那样。相反,它已发送-initWithCoder:

因此,如果您在.xib文件中有任何需要自定义初始化的UIView子类,则需要覆盖-initWithCoder:以及(或代替)-initWithFrame:

答案 1 :(得分:1)

看起来你需要initWithCoder,当从NIB加载对象时调用它

或者,更好,awakeFromNib。不同之处在于,当所有插座都连接时,会调用awakeFromNib