UIViewController: определить ориентацию в процессе - PullRequest
1 голос
/ 12 августа 2011

Я разрабатываю приложение для iPhone.Есть ли в UIViewController состояние по умолчанию / аксессор, указывающее, выполняется ли ориентация?

В настоящее время я сделал следующее:

A BOOL член в подклассе UIViewController sayisOrientationChangeInProgress

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
isOrientationChangeInProgress = YES;
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
isOrientationChangeInProgress = NO;
}

Есть ли лучший способ?

Ответы [ 2 ]

0 голосов
/ 12 августа 2011

Вы также можете запросить информацию об ориентации устройства:

    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
                                                 name:UIDeviceOrientationDidChangeNotification object:nil];

Затем вам сообщают Ориентация: изменилось: * когда произойдет изменение

0 голосов
/ 12 августа 2011

Apple советует запускать любую анимацию в willRotateToInterfaceOrientation:duration:, поэтому его вращение происходит вскоре после вызова этого метода. Свойство duration указывает, как долго вызывается didRotateFromInterfaceOrientation: после завершения вращения или примерно через несколько секунд.

Итак, я полагаю, что ваша BOOL - лучшее, что нужно сделать в ретроспективе. Я не понимаю, почему вы должны это знать, хотя; может быть, ваш желаемый результат может быть достигнут по-другому. Что ты пытаешься сделать?

...