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的代码和对象。 你应该编写一个包含公共初始化逻辑的单独的方法,并从awakeFromNibinitWithFrame:调用它initWithFrame:

那么,只要设置了XIB和NIB之间的所有连接, awakeFromNib调用awakeFromNib 。 我相信awakeFromNib是从一个nib文件初始化时调用一个对象。 所以如果你是以编程的方式创build它,而不是使用NIB文件,那么就不需要调用awakeFromNib 。 另一方面,调用initWithFrame听起来像是要走的路。 在这个函数中,你可以以编程方式创build你的视图,而不需要一个nib文件。 我可能是错的,但我认为initWithFrame被调用,无论你的视图是否用一个笔尖创build。