1

对于单视图应用,添加了一个 DrawView 类,它是 UIView 类的子类。

它作为应用程序的主视图,所以drawRect这个类的方法效果很好,可以画东西,例如,但是Xcode生成的代码有一行“//初始​​化代码”表示将初始化代码放在那里,里面initWithFrame,但是我在里面放了一些代码,它没有被调用,并且在那里设置了一个断点,但它永远不会停在那里?init然后我使用通常的方法添加了一个,它也没有被调用?

4

2 回答 2

3

尝试覆盖 -(id)initWithCoder:(NSCoder*)coder。我相信当从 nib 加载视图时,它会使用这个 init 方法。看到这个问题。

于 2012-04-21T20:18:11.763 回答
1
  • initWithCoder: -如果您从 Interface Builder nib 文件加载视图并且您的视图需要自定义初始化,建议您实现此方法。nib 加载代码不使用 initWithFrame: 方法来实例化新的视图对象。相反,它使用 initWithCoder: 方法,该方法是 NSCoding 协议的一部分。nib 加载代码不使用 initWithFrame: 方法来实例化新的视图对象。相反,它使用 initWithCoder: 方法,该方法是 NSCoding 协议的一部分。苹果的文档

  • initWithFrame: - 视图的默认初始化方法,新的视图对象必须插入到窗口的视图层次中才能使用。如果您以编程方式创建视图对象,则此方法是 UIView 类的指定初始化程序。

这里有一些更多信息:覆盖方法

很高兴能帮助你:)

于 2012-04-21T20:34:49.800 回答