Проблемы с ориентацией оверлея iPad - PullRequest
1 голос
/ 21 июня 2011

Я занимаюсь разработкой приложения для iPad2, которое позволяет пользователю делать фотографии.Я собираюсь использовать пользовательское наложение для выбора изображений.Но этот оверлейный вид не определяет ориентацию устройства.

Я пробовал с didRotateFromInterfaceOrientation и willAnimateRotationToInterfaceOrientation.Но ни один из них не работает.Вот как я создаю оверлей.

@interface CameraOverlayController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate>


-(void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType
{
    self.picker.sourceType = sourceType;

    if (sourceType == UIImagePickerControllerSourceTypeCamera)
    {        
        self.picker.showsCameraControls = NO;        

        if ([[self.picker.cameraOverlayView subviews] count] == 0)
        {
            CGRect overlayViewFrame = self.picker.cameraOverlayView.frame;

            if (UIDeviceOrientationIsLandscape(self.interfaceOrientation)) {
                NSLog(@"Initially Landscape and height : %f" , CGRectGetHeight(overlayViewFrame));
            }
            if (UIDeviceOrientationIsPortrait(self.interfaceOrientation)) {
                NSLog(@"Initially Portrait and height : %f", CGRectGetHeight(overlayViewFrame));
            }
            self.view.backgroundColor = [UIColor clearColor];

            CGRect newFrame = CGRectMake(0.0, CGRectGetHeight(overlayViewFrame) - self.view.frame.size.height - 10.0, CGRectGetWidth(overlayViewFrame), self.view.frame.size.height + 10.0);

            self.view.frame = newFrame;
            [self.picker.cameraOverlayView addSubview:self.view];
        }
    }
}

Может кто-нибудь сказать, пожалуйста, как я могу обнаружить вращение устройства в пределах наложения камеры?

Большое спасибо

1 Ответ

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

У меня есть решение вышеупомянутой проблемы самостоятельно. Вышеуказанная функция была воссоздана следующим образом.

-(void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType
{
    self.picker.sourceType = sourceType;
    if (sourceType == UIImagePickerControllerSourceTypeCamera)
    {
        self.picker.showsCameraControls = NO;                
    }
}

Тогда я использую делегат контроллера навигации. В рамках этой функции я мог зафиксировать ориентацию устройства и решить свои проблемы.

-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

Спасибо за просмотр.

...