我在IOS.I新手工作的演示項目中,我應該打開UIImagepicker挑選照片和相機捕獲新的,在所有方向。 我知道UIImagepicker只支持縱向,但我做了一個UIImagePicker類別類,其中我重寫了支持方向的方向方法。如何將UIImage picker攝像頭的方向更改爲橫向?
問題是我的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 {
}
}
}
,當我在縱向模式下打開相機,然後我改到其他方向這種方法工作正常,我。但是,當我在橫向模式下打開相機時,所有的事情都搞亂了。 我知道我在這裏使用了靜態值,但我沒有任何其他選擇。
有沒有人有任何建議或替代選擇。我會非常感謝他/她。
在此先感謝!
我很感謝你的回答,第一個鏈接說這是不可能的技術上...我知道,而另一個答案談UIImage不是關於UIImgePicker相機! Thanx for concers –
因此,如果從定位設備糾察,您可以旋轉圖像... –
從相機捕獲的圖像即將完美。但問題是相機覆蓋視圖變得混亂! –