OStack程序员社区-中国程序员成长平台

标题: ios - 如何将 UIImage 选择器相机方向更改为横向? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 19:58
标题: ios - 如何将 UIImage 选择器相机方向更改为横向?

我是 IOS 的新手。我正在做一个演示项目,在这个项目中我应该打开 UIImagepicker 来挑选照片和相机来捕捉新的照片,在所有方向。 我知道 UIImagepicker 只支持纵向,但是我已经创建了 UIImagePicker 的类别类,并且我在其中重写了方向方法以支持方向。

问题是我的 UIImagePicker 在所有方向上都可以完美打开,但是当我更改为任何横向模式时,相机会旋转 90 度并进入半屏状态。

所以为了解决这个问题,我添加了一个观察者,它会在方向改变时触发通知。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver:self selectorselector(orientationChanged) name"UIDeviceOrientationDidChangeNotification" object:nil];

而被调用的方法是

- (void) orientationChanged
  { 
    if (self.imagePickerController.sourceType==UIImagePickerControllerSourceTypeCamera)
    {

    @try {

             if (orientation == UIInterfaceOrientationLandscapeLeft)
            {
                transform=CGAffineTransformRotate(transform,LANDSCAPE_NEGATIVE_ANGLE * M_PI / LANDSCAPE_ANGLE);
                transform=CGAffineTransformTranslate(transform, -75, -80);
                [self.imagePickerController setCameraViewTransform:transform];

            }
            else if (orientation == UIInterfaceOrientationLandscapeRight)
            {
                transform=CGAffineTransformRotate(transform,LANDSCAPE_NEGATIVE_ANGLE * M_PI / LANDSCAPE_ANGLE);
                transform=CGAffineTransformTranslate(transform, 75, 80);
                [self.imagePickerController setCameraViewTransform:transform];

            }
            else
            {
                //        CGAffineTransform tmpTransform=PORTRAIT_Transform;
                transform=CGAffineTransformRotate(transform,LANDSCAPE_NEGATIVE_ANGLE * M_PI / 90);
                transform=CGAffineTransformTranslate(transform, 0, 0);
                [self.imagePickerController setCameraViewTransform:transform];

            }
    }
    @catch (NSException *exception)
    {
        NSLog(@"Exception occured, Details :%@",exception);
    }
    @finally {

    }

}

}

当我以纵向模式打开相机然后更改为其他方向时,此方法对我来说很好。但是当我以横向模式打开相机时,一切都搞砸了。 我知道我在这里使用了静态值,但我别无选择。

有没有人有任何建议或替代选择。我会非常感谢他/她。

提前致谢!!!



Best Answer-推荐答案


这些答案可以帮助你:

iPhone UIImagePicker Camera in Landscape Orientation

iOS UIImagePickerController result image orientation after upload

这样做的好方法。

关于ios - 如何将 UIImage 选择器相机方向更改为横向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22248801/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4