我正在使用具有三个屏幕的应用程序。
首先是主屏幕。在带有按钮的主屏幕上,用户导航到第二个屏幕,在那里我有一个相机覆盖图,只有一个按钮可以拍照。
当用户拍照时,他可以按下导航到最后一个屏幕的按钮。但是当他从最后一个屏幕导航到家中然后进入覆盖秒屏幕时,摄像机将关闭。按钮出现,他可以拍照,但他无法通过相机看到。
我在主屏幕上使用以下代码来启动叠加:
if (self.imageView.isAnimating)
self.imageView.stopAnimating;
if ([UIImagePickerController isSourceTypeAvailable:sourceType])
{
[self.overlayViewController setupImagePicker:sourceType];
[self presentModalViewController:self.overlayViewController.imagePickerController animated:YES];
}
overlayviewcontroller
是第二个屏幕,overlayviewcontroller
代码如下:
- (void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType
{
self.imagePickerController.sourceType = sourceType;
if (sourceType == UIImagePickerControllerSourceTypeCamera)
{
self.imagePickerController.showsCameraControls = NO;
if ([[self.imagePickerController.cameraOverlayView subviews] count] == 0)
{
CGRect overlayViewFrame = self.imagePickerController.cameraOverlayView.frame;
CGRect newFrame = CGRectMake(0.0,
CGRectGetHeight(overlayViewFrame) - self.view.frame.size.height - 10.0,
CGRectGetWidth(overlayViewFrame),
self.view.frame.size.height + 10.0);
self.view.frame = newFrame;
[self.imagePickerController.cameraOverlayView addSubview:self.view];
}
}
}
我将不胜感激。
答案 0 :(得分:0)
我遇到了同样的问题,我得到了一个解决方案。
我的解决方案如下
[self performSelector:@selector(setCameraOverlayView) withObject:Nil afterDelay:2];
而不是直接放在下面的行
[self.imagePickerController.cameraOverlayView addSubview:self.view];
在overlayViewController
上面的方法
并将该行放在选择器方法setCameraOverlayView
中。
就像下面的
-(void)setCameraOverlayView
{
[imagePickerController.cameraOverlayView addSubview:self.view];
}
这将解决您的问题
快乐编码:)
修改强>
要初始化叠加层,我使用下面的代码,叠加层中的init函数也被修改
初始化叠加层
self.overlayViewController = [[OverlayViewController alloc] initWithNibName:@"OverlayViewController" bundle:nil images:self.finalData];
叠加层中的初始化功能
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil images:(NSArray *)imgArray
{
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]))
{
subCategories = imgArray;
imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
imagePickerController.navigationBarHidden = YES;
}
return self;
}
数组不是必需的或必要的,这是一些额外的信息,我需要用叠加做更多的事情,你可以省略它。
快乐编码:)