0

我正在尝试使用我的 iPad 应用程序拍照,但是当我启动 UIImagePickerController 时,相机以错误的方向显示图像。

这是我调用 UIImagePickerController 的代码:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0 || buttonIndex == 1) {
        // Initialization
        self.imgPicker = [[UIImagePickerController alloc] init];
        self.imgPicker.allowsEditing = YES;
        self.imgPicker.delegate = self;

        // Chosing the source
        if (buttonIndex == 0) {
            self.imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // Displayed in the good orientation
        }
        else {
            self.imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
            self.imgPicker.showsCameraControls = YES;
        }

        // Popup pour la photo
        self.imgPicker.allowsEditing = YES;
        self.imgPicker.contentSizeForViewInPopover = CGSizeMake(1000, 700);
        self.photoPopOver.delegate = self;
        self.photoPopOver = [[UIPopoverController alloc] initWithContentViewController:self.imgPicker];
        [self.photoPopOver presentPopoverFromRect:self.photoBut.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    }
    else {
        [self cancel];
    }
}

要知道的事情: - 当我设置为时sourceTypeUIImagePickerControllerSourceTypePhotoLibrary视图显示正确 - 拍照时,它以良好的旋转显示

我不知道告诉它是否有用,但在父视图控制器中,我有这个:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
}

- (BOOL)shouldAutorotate {
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}

我该如何解决?非常感谢 !

4

2 回答 2

2

// 解决方案是修复UIImage拾取使用UIImagePickerViewController或相机的方向。

这是解决方向问题的示例,请查看此处

定义了一个类别来解决 IOS 中的方向问题。当您在 IOS 设备中使用“相机”应用程序以纵向模式拍摄照片然后在您的应用程序中使用它时会发生这种情况,UIImagePickerViewController因为相机的默认方向是Landscape.

于 2013-10-14T08:14:58.693 回答
0

这听起来更像是您遇到的相机预览与捕获的图像相比方向不正确的问题。这是一些解决您的问题的代码。

于 2014-12-01T06:46:20.780 回答