2011-04-01 130 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:方法