Как я могу получить высоту объектов из awakeFromNib в мой mainViewController.m?
Я программно создал UILable
в файле xib - класс awakeFromNib
и я пытаюсь получить высоту надписей в mainViewController.m
, Я пытался с помощью NSBundle
загрузить файл XIB, но это не сработало. Есть ли другой способ загрузить его? Мне нужно позвонить awakFromNib
в viewDidLoad
,
Вот мой код:
- (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.
[[[NSBundle mainBundle] loadNibNamed:@"customCell" owner:self options:nil]objectAtIndex:0];
customCell *cellVC = [[cutsomCell alloc] init];
NSLog(@"%f", cellVC.label.frame.size.height); // Results: 0.0000
}
мне нужно NSLog
для отображения 200
не 0
,
1 ответ
Решение
У меня была самая большая неудача при загрузке перьев и проблем в поисках простого способа сделать это. Это то, что работало для меня в прошлом.
Добавьте это к customCell.m
- (id)initWithNib
{
// where MyCustomView is the name of your nib
UINib *nib = [UINib nibWithNibName:@"customCell" bundle:[NSBundle mainBundle]];
self = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];
return self;
}
Добавьте это к customCell.h
- (id)initWithNib;
Теперь, по вашему мнению, контроллер делает это
customCell *cellVC = [[cutsomCell alloc] initWithNib];
Я нашел хорошую ссылку здесь, которая использует этот пример здесь