Почему я получаю целочисленные значения, когда пытаюсь изменить ориентацию iPad? - PullRequest
0 голосов
/ 07 ноября 2011

Просто интересно, почему я получаю целочисленные значения, когда пытаюсь записать ориентацию iPad.Есть ли ресурс, который говорит мне, что означает каждое значение?Я получил что-нибудь от 1 до 8. Я только думал, что было 4 возможных ориентации, поэтому я в замешательстве.

1 Ответ

1 голос
/ 07 ноября 2011

Я не уверен насчет 8 различных значений, учитывая, что документация показывает

typedef enum {
   UIInterfaceOrientationPortrait           = UIDeviceOrientationPortrait,
   UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
   UIInterfaceOrientationLandscapeLeft      = UIDeviceOrientationLandscapeRight,
   UIInterfaceOrientationLandscapeRight     = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;

Вы можете записать это прямо перед тем, как зарегистрировать ориентацию и посмотреть, какая она.

NSLog(@"UIInterfaceOrientationPortrait-%d\n\
UIInterfaceOrientationPortraitUpsideDown-%d\n\
UIInterfaceOrientationLandscapeLeft-%d\n\
UIInterfaceOrientationLandscapeRight-%d", UIInterfaceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight);

Существуют удобные способы проверки конкретных ориентаций, например

UIInterfaceOrientationIsLandscape
Returns a Boolean value indicating whether the user interface is currently presented in a landscape orientation.

#define UIInterfaceOrientationIsLandscape(orientation) \
   ((orientation) == UIInterfaceOrientationLandscapeLeft || \
   (orientation) == UIInterfaceOrientationLandscapeRight)
...