Наложение UIImagePickerController самовращается

Я использую UIImagePicker для доступа к камере на моем приложении для iPhone. Я хотел бы смочь иметь два различных оверлейных программ для imagepicker, в зависимости от ориентации iPhone. Действительно ли возможно сделать это? Походит, если я помещаю следующий метод в класс, который владеет UIImagePickerController, это не становится зашедшим все, и ни в каком uiviewcontroller, выше которого это только называют, после того как UIImagePickerController не активен.

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
   NSLog(@"shouldAutorotate called");
   return YES;
}

Какая-либо идея, как достигнуть желаемого эффекта?

5
задан Peter Hosey 30 December 2009 в 05:57
поделиться

2 ответа

В документации сказано, что UIImagePickerController поддерживает только портретный режим, так что, возможно, нет никакого поддерживаемого способа сделать это.

Если вы используете presentModalViewController:animated для отображения imagepicker, то я полагаю, что только модальный контроллер будет получать сообщения типа shouldAutorotateToInterfaceOrientation.

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

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

Edit:

На самом деле, попробуйте использовать [NSNotificationCenter addObserver: для UIDeviceOrientationDidChangeNotification.

.
3
ответ дан 15 December 2019 в 06:27
поделиться

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

0
ответ дан 15 December 2019 в 06:27
поделиться