2014-03-07 71 views
2

我在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 { 

    } 

} 

}

,当我在纵向模式下打开相机,然后我改到其他方向这种方法工作正常,我。但是,当我在横向模式下打开相机时,所有的事情都搞乱了。 我知道我在这里使用了静态值,但我没有任何其他选择。

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

在此先感谢!

回答

1
+0

我很感谢你的回答,第一个链接说这是不可能的技术上...我知道,而另一个答案谈UIImage不是关于UIImgePicker相机! Thanx for concers –

+0

因此,如果从定位设备纠察,您可以旋转图像... –

+0

从相机捕获的图像即将完美。但问题是相机覆盖视图变得混乱! –