выполнить метод, когда iPhone переходит в альбомный режим - PullRequest
3 голосов
/ 08 июля 2011

Есть ли делегат, который будет вызван, когда iPhone перейдет в альбомный или портретный режим?Мне нужно изменить стиль и поместить объекты в другое место, когда iPhone будет повернут.Нужно ли делать это с акселерометром?Более того, если такой делегат существует, я должен создать соединение в конструкторе интерфейсов.Я новичок в объективе-c ...

Ответы [ 3 ]

7 голосов
/ 08 июля 2011

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

UIDevice *device = [UIDevice currentDevice];
    //Tell it to start monitoring the accelerometer for orientation             
[device beginGeneratingDeviceOrientationNotifications];
    //Get the notification centre for the app   
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];    
[nc addObserver:self selector:@selector(orientationChanged:)        name:UIDeviceOrientationDidChangeNotification
         object:device];

Реализуйте метод orientationChanged:, который будет вызываться, когда устройство меняет ориентацию. Вы можете поставить код для проверки типа ориентации и вызвать свой метод.

- (void)orientationChanged:(NSNotification *)note
{
    NSLog(@"Orientation  has changed: %d", [[note object] orientation]);
}

Удалить уведомление в dealloc.

[[NSNotificationCenter defaultCenter] removeObserver:self];
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

Проверьте сообщение в блоге

Реагирование на ориентацию iPhone

1 голос
/ 08 июля 2011

Реализация didRotateFromInterfaceOrientation в вашем контроллере представления

- (void) didRotateFromInterfaceOrientation: (UIInterfaceOrientation) fromInterfaceOrientation

0 голосов
/ 08 июля 2011

Вы можете получить UIDevice для генерации уведомлений о событиях ориентации.См. Документацию для UIDevice .

. Если вам необходимо обнаружить изменение в любой момент, вы можете рассмотреть возможность вызова -beginGeneratingDeviceOrientationNotifications в делегате вашего приложения.

Кроме того, еслиВы используете UIViewController с, есть

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