2013-02-26 2 views
1

У меня есть следующий код:код внутри awakeFromNib быть переопределены раскадровку

- (void) awakeFromNib 
{ 
    CGRect temp = self.buttonOne.frame; 
    temp.origin.y += 50; 
    self.buttonOne.frame = temp; 
} 

Код внутри ничего не делает; когда приложение загружает buttonOne именно там, где оно находится на раскадровке.

Если я разместить один и тот же код внутри viewDidLoad таким образом:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    CGRect temp = self.buttonOne.frame; 
    temp.origin.y += 50; 
    self.buttonOne.frame = temp; 
} 

Он работает и кнопка перемещается вниз.

Это потому, что что-то происходит между стрельбой awakeFromNib и изображением, которое рисуется?

Любые уточнения были бы замечательными!

ответ

1

awakeFromNib будет вызываться, когда контроллер будет удален из файла nib, а viewDidLoad будет вызываться при создании представления, связанного с контроллером.

Поэтому awakeFromNib будет называться до viewDidLoad. Когда вызывается awakeFromNib, представление еще не загружено (если бы оно было вызвано viewDidLoad), поэтому любые изменения в нем не повлияют на него.

+0

так что приложение ничего не знает о координатах любого из представлений при вызове awakeFromNib, и все изменения, которые он внесет, будут переопределены? Какую функцию вызывается для установки начальных координат видов из раскадровки? – Bassel

+0

@Bassel, когда awakeFromNib называется видом, пока не существует, поскольку он не был загружен, поэтому любые сделанные вами изменения ничего не сделают. Начальные координаты будут известны при вызове viewDidLoad, обратите внимание, что это может отличаться от конечных координат, поскольку размеры видов изменяются в соответствии с содержимым контроллера. –

+0

Ну, я отключил просмотр, авторезистирую и отключил автоспуск, так что этого не должно произойти, и координаты при входе в viewDidLoad, надеюсь, будут конечными координатами, которые будут отображаться. Спасибо за ответ! – Bassel

Смежные вопросы