我正在開發一個iOS應用程序與最新的SDK。UIInterfaceOrientation是風景但UIView仍然在肖像模式
我正在開發一款僅支持LandscapeRight方向的相機應用程序。
On Main ViewController
我爲AVCaptureVideoPreviewLayer
添加了UIView
。換句話說,主要是ViewController
我有主視圖,另一個視圖videoPreviewView
,對於AVCaptureVideoPreviewLayer
。
我對viewWillAppear:
方法建立AVCaptureVideoPreviewLayer
:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self setUpVideo];
}
- (void)setUpVideo
{
NSLog(@"Set up video");
if (DataExchanger.cameraManager != nil)
{
UIView *view = [self videoPreviewView];
CALayer *viewLayer = [view layer];
[viewLayer setMasksToBounds:YES];
AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:DataExchanger.cameraManager.captureSession];
CGRect bounds = [view bounds];
NSLog(@"BOUNDS: %@", NSStringFromCGRect(bounds));
[newCaptureVideoPreviewLayer setFrame:bounds];
[newCaptureVideoPreviewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
[viewLayer insertSublayer:newCaptureVideoPreviewLayer below:[[viewLayer sublayers] objectAtIndex:0]];
}
}
我得到這個日誌:
BOUNDS: {{0, 0}, {320, 480}}
但UIInterfaceOrientation
爲UIInterfaceOrientationLandscapeRight
,並與方向,我會得到這些值:
BOUNDS: {{0, 0}, {480, 320}}
另一個問題是我看到視頻旋轉-90度。
我發現這個stackoverflow question,但從未觸發- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
方法。
發生了什麼事?我該如何解決這個問題?
我的工作與最新的SDK,我支持iOS 5.0及以上。我必須使用哪個版本的答案?但我認爲你的回答並沒有解決我的問題,因爲現在我正在使用第二個選項,而且我遇到了這個問題。 – VansFannel 2013-03-18 07:36:35
如果有人打算在發帖後的3個月隨機抽取3個我的答案;至少請發表評論和理由(如果有的話)。 – Spectravideo328 2014-05-20 11:24:31