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

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

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

谢谢,
三通

【问题讨论】:

    标签: objective-c uiview


    【解决方案1】:

    查看-initWithFrame: 的文档

    -initWithFrame:

    讨论

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 2018-10-18
        • 2021-08-26
        • 2019-09-20
        • 2018-09-01
        相关资源
        最近更新 更多