2011-04-12 45 views
2

我有一个带摄像头覆盖的应用程序。
在这个覆盖视图中,我有2个imageViews和1个视图。 1图像视图覆盖图形绘制。
我图像视图把拍摄的图片放入它。
我自定义查看一些自定义绘图。iPhone - 防止UIImageView在从垂直切换到水平时旋转

当拍照时iPhone处于水平位置时,旋转显示的照片到图像视图中。所以我在图片的两边都有很大的空间。

我试图把这个到OverlayViewController,但没有任何效果:

shouldAutorotateToInterfaceOrientation 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

所有视图和图像视图具有相同的PARAMS到IB(对于那些常见的PARAMS)。

当手机不垂直时,如何防止图片旋转进入图像视图?

注意:我必须能够保持自动旋转我可以在应用程序中显示的其他视图的能力。

回答

0

在您的视图控制器的willAnimateRotationToInterfaceOrientation:duration:方法中,您可以向UIImageView的transform属性应用反向旋转。例如,如果控制器正在旋转到UIInterfaceOrientationLandscapeLeft,即从肖像顺时针旋转90°。因此,如果将90°逆时针旋转应用于图像视图,它似乎根本不会旋转。

+0

你能给我一个你正在考虑的代码的例子吗?我已经与transform属性打了几个小时来镜像前摄像头图片,我不想再次丢失:-) – Oliver 2011-04-12 22:47:35

+0

@Oliver:'imageView.transform = CGAffineTransformMakeRotation(M_PI_2);'或'-M_PI_2 ',我永远不会记得哪个是哪个。 – Anomie 2011-04-13 00:06:17

+0

我测试了你的解决方案,都没有工作:-( – Oliver 2011-04-14 19:43:14

0

您可以直接将它添加到窗口中,该窗口不会自动旋转。

+0

你在说哪个窗口?我正在进行摄像机视图上的叠加视图。 – Oliver 2011-04-12 22:46:05