UIView - 设置成员变量的默认值

时间:2011-04-01 23:20:21

标签: objective-c uiview

我有一个扩展UIView的类叫做TouchView 该视图通过Interface Builder在屏幕上显示。

我在TouchView中有一个变量。如何为该变量赋予默认值?
我的函数 - (id)initWithFrame:(CGRect)框架;似乎没有被召唤。
UIView中是否有任何函数总是被调用,所以我可以在那里初始化我的变量?

谢谢,
三通

2 个答案:

答案 0 :(得分:1)

当Interface Builder解压缩nib并实例化你的自定义类时,将调用-initWithCoder :.尝试重写initWithCoder:而不是initWithFrame:

答案 1 :(得分:1)

查看-initWithFrame:

的文档
  

-initWithFrame:

     

讨论

     

必须先将新视图对象插入窗口的视图层次结构中,然后才能使用它。如果以编程方式创建视图对象,则此方法是UIView类的指定初始值设定项。子类可以覆盖此方法以执行任何自定义初始化,但必须在实现开始时调用super。

     

如果使用Interface Builder设计界面,则随后从nib文件加载视图对象时不会调用此方法。重构nib文件中的对象,然后使用其initWithCoder:方法进行初始化,该方法修改视图的属性以匹配存储在nib文件中的属性。有关如何从nib文件加载视图的详细信息,请参阅“资源编程指南”。

如果您的逻辑属于对象初始化期间,则使用-initWithCoder:。用户-awakeFromNib:如果您的逻辑期望已经设置已加载对象的出口。