如何在 mainViewController.m 中调用 awakeFromNib
How to Call awakeFromNib in mainViewController.m
我有一个包含自定义单元格的 xib 文件。我正在尝试访问在 customCell.m
.
中创建的对象的高度
这是我的代码:
customCell.m
- (void)awakeFromNib
{
self.label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 200)];
[self.label setText:@"This is a label"];
[self.myView addSubview:self.label];
NSLog(@"%f", self.label.frame.size.height); // Results: 200.0000
}
mainViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
customCell *cellVC = [[cutsomCell alloc] init];
NSLog(@"%f, %f", cellVC.label.frame.size.height); // Results: 0.0000
}
awakeFromNib 在设置所有文件所有者出口和属性时调用。 viewDidLoad 中没有连接(根据 frames/layout)。
awakeFromNib 在 viewDidLoad 之后被调用,这就是您看到差异的原因。
抱歉,这不起作用。您正在通过代码中的 alloc/init 创建您的 customCell。 AwakeFromNib 仅针对 nib 文件中定义的对象调用。
您可能需要在单独的 nib 文件中定义您的 customCell,并通过 + (BOOL)loadNibNamed:(NSString *)aNibName owner:(id)owner
或类似方式加载该 nib 文件。
我有一个包含自定义单元格的 xib 文件。我正在尝试访问在 customCell.m
.
这是我的代码:
customCell.m
- (void)awakeFromNib
{
self.label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 200)];
[self.label setText:@"This is a label"];
[self.myView addSubview:self.label];
NSLog(@"%f", self.label.frame.size.height); // Results: 200.0000
}
mainViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
customCell *cellVC = [[cutsomCell alloc] init];
NSLog(@"%f, %f", cellVC.label.frame.size.height); // Results: 0.0000
}
awakeFromNib 在设置所有文件所有者出口和属性时调用。 viewDidLoad 中没有连接(根据 frames/layout)。
awakeFromNib 在 viewDidLoad 之后被调用,这就是您看到差异的原因。
抱歉,这不起作用。您正在通过代码中的 alloc/init 创建您的 customCell。 AwakeFromNib 仅针对 nib 文件中定义的对象调用。
您可能需要在单独的 nib 文件中定义您的 customCell,并通过 + (BOOL)loadNibNamed:(NSString *)aNibName owner:(id)owner
或类似方式加载该 nib 文件。