2011-04-12 71 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