我是 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-推荐答案 strong>
这些答案可以帮助你:
iPhone UIImagePicker Camera in Landscape Orientation
或
iOS UIImagePickerController result image orientation after upload
这样做的好方法。
关于ios - 如何将 UIImage 选择器相机方向更改为横向?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/22248801/
|