Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用自定义UIImagePicker覆盖将生成白屏相机预览_Ios_Iphone_Ios7_Uiimagepickercontroller - Fatal编程技术网

Ios 使用自定义UIImagePicker覆盖将生成白屏相机预览

Ios 使用自定义UIImagePicker覆盖将生成白屏相机预览,ios,iphone,ios7,uiimagepickercontroller,Ios,Iphone,Ios7,Uiimagepickercontroller,我目前正在为我的相机控件和UIImagePickerController使用自定义覆盖,设置如下: self.imagePickerController = [[UIImagePickerController alloc] init]; self.imagePickerController.delegate = self; //... Additional set up code omitted self.imagePickerController.mediaTypes

我目前正在为我的相机控件和
UIImagePickerController
使用自定义覆盖,设置如下:

self.imagePickerController = [[UIImagePickerController alloc] init];
    self.imagePickerController.delegate = self;
    //... Additional set up code omitted
    self.imagePickerController.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil];
    //!---- If below code deleted and use default ImagePickerController, all works fine
    if (self.imagePickerController.sourceType == UIImagePickerControllerSourceTypeCamera)
    {
        self.imagePickerController.showsCameraControls = NO;

        [[NSBundle mainBundle] loadNibNamed:@"overlayView2" owner:self options:nil];
        self.overlayView.frame = self.imagePickerController.cameraOverlayView.frame;
        self.imagePickerController.cameraOverlayView = self.overlayView;
        self.overlayView = nil;

        CGSize screenSize = [[UIScreen mainScreen] bounds].size;

        float cameraAspectRatio = 4.0 / 4.0;
        float imageWidth = floorf(screenSize.width * cameraAspectRatio);
        float scale = ceilf((screenSize.height / imageWidth) * 10.0) / 10.0;

        self.imagePickerController.cameraViewTransform = CGAffineTransformMakeScale(scale, scale);

    }
通过上面的代码,我得到了以下白色摄像头预览屏幕:

但是,根据上述注释,如果我使用默认的UIImagePickerController,则预览将启动并正常工作:

我不确定设置的哪些方面导致了白色空白屏幕。一个关于类似问题的提问提到了录音,但由于我只关注图片,我不确定这两者之间有什么关系


谢谢你的帮助

您是否检查了覆盖视图背景颜色,将其更改为“清除颜色”和“self.overlayView=nil”;看起来是错误的,不要在这里将它们设置为零,在viewDidUnload中执行,因为它们是视图obj@Retro当iOS 6问世时,
viewDidUnload
被弃用。@Retro不敢相信这是一个清晰的颜色问题。谢谢@阿伦布拉格:谢谢。)是的。谢谢@Retro