gpt4 book ai didi

ios - 如何将 UIImage 选择器相机方向更改为横向?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:35:53 25 4
gpt4 key购买 nike

我是 IOS 的新手。我正在处理演示项目,在该项目中我应该打开 UIImagepicker 来选择照片和相机来捕捉新照片,在所有方向上。 我知道 UIImagepicker 只支持纵向,但我创建了一个 UIImagePicker 类别类,并在其中覆盖了方向方法以支持方向。

问题是我的 UIImagePicker 在所有方向上都能完美打开,但当我切换到任何横向模式时,相机会旋转 90 度并进入半屏。

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

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(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 {

}

}

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

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

提前致谢!!!

最佳答案

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com