如何在mainViewController.m中调用awakeFromNib

时间:2015-02-02 22:37:38

标签: objective-c uitableview xib custom-cell awakefromnib

我有一个包含自定义单元格的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
}

2 个答案:

答案 0 :(得分:2)

在设置所有文件所有者出口和属性时调用awakeFromNib。在viewDidLoad中,事物没有连线(在帧/布局方面)。

在viewDidLoad之后调用awakeFromNib,这就是你看到差异的原因。

答案 1 :(得分:0)

抱歉,这不起作用。您正在通过代码中的alloc / init创建customCell。仅为nib文件中定义的对象调用AwakeFromNib。

您可能需要在单独的nib文件中定义customCell,并通过+ (BOOL)loadNibNamed:(NSString *)aNibName owner:(id)owner或类似文件加载该nib文件。