UIKit:以编程方式调用awakeFromNib?

ma1*_*w28 1 uikit nib ios awakefromnib

我看到了这段代码:

CoolButton *coolButton = [[CoolButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 60.0f, 25.0f)];
[coolButton awakeFromNib];
// ...
[coolButton release];
Run Code Online (Sandbox Code Playgroud)

CoolButton子类UIButton.可以通过awakeFromNib编程方式调用吗?

如果我想要以-[CoolButton awakeFromNib]编程方式创建对象而不是从nib文件创建相同的事情,那么最好的方法是什么?

我应该定义一个方法,并调用它-[CoolButton awakeFromNib]-[CoolButton initWithFrame]?或者,是否有另一种我应该定义的初始化方法,在两种情况下都会被调用:无论是以CoolButton编程方式还是从nib文件创建?

Ale*_*lex 6

不,没有为在代码中创建的对象和从NIB创建的对象调用的方法.你应该写一个包含了常见的初始化逻辑独立的方法,并从两个调用它awakeFromNibinitWithFrame:.

  • 怎么样`initWithCoder:`?根据文档,从nib文件加载`UIView`子类时会调用它.`initWithFrame:`调用`-initWithCoder:`?如果是这样,那么我可以实现`-initWithCoder:`? (4认同)