UIView - 设置成员变量默认值

Posted

技术标签:

【中文标题】UIView - 设置成员变量默认值【英文标题】:UIView - setting member variable default value 【发布时间】:2011-04-01 23:20:20 【问题描述】:

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

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

谢谢, 三通

【问题讨论】:

【参考方案1】:

查看-initWithFrame: 的文档

-initWithFrame:

讨论

新的视图对象必须插入到窗口的视图层次中才能使用。如果您以编程方式创建视图对象,则此方法是 UIView 类的指定初始化程序。子类可以重写此方法以执行任何自定义初始化,但必须在其实现开始时调用 super。

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

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

【讨论】:

【参考方案2】:

当 Interface Builder 解压 nib 并实例化您的自定义类时,-initWithCoder: 将被调用。尝试覆盖 initWithCoder: 而不是 initWithFrame:

【讨论】:

以上是关于UIView - 设置成员变量默认值的主要内容,如果未能解决你的问题,请参考以下文章

java成员变量怎么默认初始化

java成员变量默认赋值和初始化

java中证明成员变量有默认初始值

java的成员变量默认值

java 中静态成员变量有没默认的初始值

JAVa类中默认的成员变量的访问权问题