iOS 原生相机覆盖物,人像覆盖物,UIImagePicker。


在人脸识别中为方便用户准确的拍照正脸,通常都会在原生相机中添加相机人像覆盖物,最近自己公司项目中刚好遇到这样的需求,整理出来,分享给大家。效果图如下:

demo.jpeg
  • 注意:由于公司项目是ipad版本,所以图片大小尺寸需要大家重新设置。


下面是主要代码。项目工程大家可点击本文后的链接,前往github下载。
BOOL isPicker = true;
    //            判断相机是否可用
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
        //        _picker.showsCameraControls = NO;//默认是打开的这样才有拍照键,前后摄像头切换的控制,一半设置为NO的时候用于自定义ovelay
        
        UIImage *layImg = [UIImage imageNamed:@"icon_face"];
        
        UIImageView *overLayImg = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width/2 - 230/2, self.view.frame.size.height/2 - 340/2, 230, 340)];
        
        overLayImg.image = layImg;
        
        self.picker.cameraOverlayView = overLayImg;//3.0以后可以直接设置
        
        
        isPicker = true;
    }
    
    if (isPicker) {
        [self presentViewController:self.picker animated:YES completion:nil];
    }else {
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"错误" message:@"相机不可用" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleCancel handler:nil];
        [alert addAction:action];
        
        [self presentViewController:alert animated:YES completion:nil];
    }


注意:
1、 一定要在UIImagePickerControllerSourceTypeCamera模式下才可以去设置cameraOverlayView。 否则项目会崩溃。
2、在plist文件中设置Privacy - Camera Usage Description 访问相机权限。否则调用相机项目会崩溃。
3、一定要在真机运行哦~



希望给个小心心支持一下~

附上demo地址:https://github.com/yananSun/PickerViewCoverDemo.git

你可能感兴趣的:(iOS 原生相机覆盖物,人像覆盖物,UIImagePicker。)