UIKit:以编程方式调用awakeFromNib?
我看到了这个代码:
CoolButton *coolButton = [[CoolButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 60.0f, 25.0f)]; [coolButton awakeFromNib]; // ... [coolButton release];
CoolButton
子类UIButton
。 可以以编程方式调用awakeFromNib
吗?
如果我想要在-[CoolButton awakeFromNib]
执行与我想要以编程方式创build对象(而不是从nib文件)创build对象相同的事情,那么做到这一点的最佳方法是什么?
我应该只是定义一个方法,并调用它-[CoolButton awakeFromNib]
和-[CoolButton initWithFrame]
? 或者,有两种情况下,我应该定义另一个初始化方法:是否以编程方式或从nib文件创buildCoolButton
?
不,没有一个方法会被调用,用于创build从NIB创build的代码和对象。 你应该编写一个包含公共初始化逻辑的单独的方法,并从awakeFromNib
和initWithFrame:
调用它initWithFrame:
那么,只要设置了XIB和NIB之间的所有连接, awakeFromNib
调用awakeFromNib
。 我相信awakeFromNib
是从一个nib文件初始化时调用一个对象。 所以如果你是以编程的方式创build它,而不是使用NIB文件,那么就不需要调用awakeFromNib
。 另一方面,调用initWithFrame
听起来像是要走的路。 在这个函数中,你可以以编程方式创build你的视图,而不需要一个nib文件。 我可能是错的,但我认为initWithFrame
被调用,无论你的视图是否用一个笔尖创build。