对于单视图应用,添加了一个 DrawView 类,它是 UIView 类的子类。
它作为应用程序的主视图,所以drawRect
这个类的方法效果很好,可以画东西,例如,但是Xcode生成的代码有一行“//初始化代码”表示将初始化代码放在那里,里面initWithFrame
,但是我在里面放了一些代码,它没有被调用,并且在那里设置了一个断点,但它永远不会停在那里?init
然后我使用通常的方法添加了一个,它也没有被调用?
尝试覆盖 -(id)initWithCoder:(NSCoder*)coder。我相信当从 nib 加载视图时,它会使用这个 init 方法。看到这个问题。
initWithCoder: -如果您从 Interface Builder nib 文件加载视图并且您的视图需要自定义初始化,建议您实现此方法。nib 加载代码不使用 initWithFrame: 方法来实例化新的视图对象。相反,它使用 initWithCoder: 方法,该方法是 NSCoding 协议的一部分。nib 加载代码不使用 initWithFrame: 方法来实例化新的视图对象。相反,它使用 initWithCoder: 方法,该方法是 NSCoding 协议的一部分。苹果的文档
initWithFrame: - 视图的默认初始化方法,新的视图对象必须插入到窗口的视图层次中才能使用。如果您以编程方式创建视图对象,则此方法是 UIView 类的指定初始化程序。
这里有一些更多信息:覆盖方法
很高兴能帮助你:)