2015-02-03 2 views
1

Я программно создал UILable в файле xib - класс awakeFromNib, и я пытаюсь получить высоту меток в mainViewController.m. Я попытался использовать NSBundle для загрузки xib-файла, но это не сработало. Есть ли другой способ загрузить его? Мне нужно позвонить awakFromNib в viewDidLoad.Как получить высоту объектов от awakeFromNib до моего mainViewController.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. 

    [[[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 
} 

Мне нужно, чтобы отобразить NSLog200, не 0.

+0

Что такое customCell подкласс? –

+0

customCell связан с xib-файлом, который имеет ячейку внутри –

+0

В customCell.h, что он наследует от UIView? –

ответ

0

У меня были худшие удачи, загружающие наконечники и проблемы, которые искали простой способ сделать это. Это то, что сработало для меня в прошлом.

Добавить это 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]; 

Я нашел хорошую ссылку здесь который использует этот пример here