Об ориентации iPhone - PullRequest
       21

Об ориентации iPhone

1 голос
/ 30 сентября 2010

Как узнать текущую ориентацию iPhone? Я просмотрел этот сайт и нашел два метода:

  • [UIApplication sharedApplication] .statusBarOrientation;
  • [[UIDevice currentDevice] ориентация];

Какой верный способ получить текущую ориентацию? Я попробовал два метода в симуляторе 4.1, но есть некоторые проблемы для обоих методов.

Ответы [ 2 ]

6 голосов
/ 30 сентября 2010

Зарегистрируйте свой класс, чтобы прослушивать UIDeviceOrientationDidChangeNotification, затем соответствующим образом обработать ориентацию устройства.

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

и правильно обработать ориентацию устройства:

- (void)deviceRotated: (id) sender{
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
    if (orientation == UIDeviceOrientationFaceUp ||
        orientation == UIDeviceOrientationFaceDown)
    {
        //Device rotated up/down
    }

    if (orientation == UIDeviceOrientationPortraitUpsideDown)
    {
    }
    else if (orientation == UIDeviceOrientationLandscapeLeft)
    {
    }
    else if (orientation == UIDeviceOrientationLandscapeRight)
    {
    }
}
3 голосов
/ 30 сентября 2010

[[UIDevice currentDevice] orientation] получает текущую физическую ориентацию устройства.[UIApplication sharedApplication].statusBarOrientation получает ориентацию пользовательского интерфейса.Если приложение когда-либо возвращает NO методу shouldAutorotateToInterfaceOrientation:, эти два значения не будут одинаковыми.

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