Я использую UIImagePicker для доступа к камере на моем приложении для iPhone. Я хотел бы смочь иметь два различных оверлейных программ для imagepicker, в зависимости от ориентации iPhone. Действительно ли возможно сделать это? Походит, если я помещаю следующий метод в класс, который владеет UIImagePickerController, это не становится зашедшим все, и ни в каком uiviewcontroller, выше которого это только называют, после того как UIImagePickerController не активен.
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
NSLog(@"shouldAutorotate called");
return YES;
}
Какая-либо идея, как достигнуть желаемого эффекта?
В документации сказано, что UIImagePickerController поддерживает только портретный режим, так что, возможно, нет никакого поддерживаемого способа сделать это.
Если вы используете presentModalViewController:animated для отображения imagepicker, то я полагаю, что только модальный контроллер будет получать сообщения типа shouldAutorotateToInterfaceOrientation.
Обычно вы можете использовать подкласс UIImagePickerController для переопределения соответствующих методов, но, похоже, что подкласс тоже не поддерживается.
Я подозреваю, что вам придется на самом деле использовать UIAccelerometer и делать вращение вручную на вашем оверлее в ответ на сообщения об ускорении.
Edit:
На самом деле, попробуйте использовать [NSNotificationCenter addObserver: для UIDeviceOrientationDidChangeNotification.
.На самом деле используя данные необработанного акселерометра, вы можете определить, когда высказать наложение, чтобы это сделал это!