【发布时间】:2015-02-02 20:35:30
【问题描述】:
我在 UITableView 中有一个使用 xib 文件的自定义单元格。我以编程方式创建了一个高度为 200 和宽度为 50 的 UILabel。当我在标签的宽度和高度的 customCell.m 中执行 NSLog 时,它给了我 w:50 和 h:200。但是当我在mainViewController.m 中做了一个NSLog,它的高度和宽度都为0。
不知道为什么会这样。我需要在mainViewController.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
}
如果我使用 xib 文件,awakeFromNib 不应该在 viewDidLoad 处被称为 mainViewController.m 吗?如果没有,我如何在viewDidLoad 中调用它?
【问题讨论】:
标签: objective-c uitableview xib custom-cell awakefromnib