2012-07-12 64 views
0

我正在试图在iPad上对相机模式进行叠加。当相机处于横向模式时,覆盖层仅覆盖屏幕的2/3而不是全屏。但是它以纵向模式覆盖整个屏幕。我的猜测是覆盖层可能只能以纵向尺寸显示,这样覆盖层看起来不会覆盖整个屏幕。iOS相机UIView在iPad上覆盖全屏吗?

UIView *overlay = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

overlay.backgroundColor = [UIColor blueColor]; 
overlay.alpha = 0.3; 
overlay.opaque = NO; 

imagePicker.mediaTypes = mediaTypes; 
imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto; 
imagePicker.modalPresentationStyle = UIModalPresentationFullScreen; 


imagePicker.cameraOverlayView = overlay; 

但是,我可以让它覆盖整个屏幕?任何帮助将不胜感激。

+2

放的NSLog为[[uiscreen mainscreen]界限]的检查它的大小即宽度和高度不它显示landscap大小?据我所知,我面对我的开发时间,它停留或返回画像所有的时间 – 2012-07-12 09:40:49

+1

,如果它显示画像大小所有的时间只需要使用像'CGRectMake(0,0,1024,768)手动设置;'假设你需要充分屏幕覆盖它,你可以根据你的要求改变它 – 2012-07-12 09:43:30

+0

嗯......它返回null。 – tipsywacky 2012-07-12 09:44:40

回答

2

做视图帧手动设置。当它旋转到肖像或风景。

对于肖像 CGRectMake(0,0,768,1024);

对于风景 CGRectMake(0,0,1024,768);

+1

你会怎么写这个声明呢? if(interfaceOrientation == UIInterfaceOrientationPortrait)上面的CGRectMake? – tipsywacky 2012-07-12 09:54:38

+1

创建UIView对象作为类对象。当您的应用旋转时,您将在 中得到响应“ - (BOOL)shouldAutorotateToInterfaceOrientation :(UIInterfaceOrientation)interfaceOrientation” 此处您可以检查方向并根据方向设置视图fram – 2012-07-12 09:56:06

+0

对任何内容进行硬编码是一个非常糟糕的主意。您可以通过[[UIScreen mainScreen]边界] .size或其他任何东西来调整大小。 – Vive 2013-09-20 13:19:54