willAnimateSecondHalfOfRotationFromInterfaceOrientation не вызывается в корневом контроллере представления - PullRequest
4 голосов
/ 27 мая 2009

Я создал один контроллер rootview, а затем сделал его геочувствительным, написав

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    return YES;
}

В rootviewcontroller willAnimateSecondHalfOfRotationFromInterfaceOrientation вызывается метод и размеры изображений меняются.

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

-(void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration
{
    UIInterfaceOrientation toOrientation = self.interfaceOrientation;
}

метод, но он не может быть вызван. Так что я могу сделать? Пожалуйста, помогите мне.

Ответы [ 2 ]

5 голосов
/ 27 мая 2010

Это меня тоже достало. Я думаю, вы найдете ответ, если посмотрите на этот заголовочный файл для UIViewController. Там есть комментарии, в которых говорится, что вы можете переопределить EITHER

  • (void) willAnimateRotationToInterfaceOrientation: toInterfaceOrientation длительность:

ИЛИ любой из следующих

  • (аннулируются) willAnimateFirstHalfOfRotationToInterfaceOrientation: продолжительность:
  • (аннулируются) didAnimateFirstHalfOfRotationToInterfaceOrientation:
  • (void) willAnimateSecondHalfOfRotationFromInterfaceOrientation: duration:

Очевидно, что если вы переопределите первый, то будет вызываться только этот. Если вы хотите получить обратную связь от каждого этапа ротации, используйте любой из 2-го сета, но ОСТАВЛЯЙТЕ первый.

1 голос
/ 10 декабря 2010

Еще одна вещь, которую следует учитывать, это то, что вы переопределили метод shouldAutorotateToInterfaceOrientation, чтобы разрешить повороты, отличные от значения по умолчанию портрета.

Например:

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return YES;
}

Если вы этого не сделаете, ваши реализованные методы не будут вызываться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...