Открытие VNDocumentCameraViewController приводит к тому, что UIImagePickerController sourcetype .camera находится не в фокусе

Тестовый проект на Github.

В тестовом проекте 2 кнопки. Один представляет VNDocumentCameraViewController, а другой - UIImagePickerController. Если я открою VNDocumentCameraViewController, затем закрою VC, а затем открою UIImagePickerController с sourcetype .camera, дисплей камеры не сможет правильно сфокусироваться, в фокусе будут только объекты, расположенные очень близко к устройству. Если я затем вернусь к VNDocumentCameraViewController, камера здесь тоже будет не в фокусе.

Если я открываю приложение и выбираю только UIImagePickerController, фокусировка работает должным образом.

Эта проблема возникает с iPad 6-го поколения на iOS 13.6.1. Однако основное внимание уделяется iPhone SE 2020 года на iOS 13.6.1.

Есть идеи, как заставить фокус работать?

import UIKit
import VisionKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func docScannerPress(_ sender: AnyObject){
        if #available(iOS 13.0, *) {
            let scanVC = VNDocumentCameraViewController()
            scanVC.delegate = self
            present(scanVC, animated: true, completion: nil)
        } else {
        }
    }
    
    @IBAction func photoPress(_ sender: AnyObject){
        let vc = UIImagePickerController()
        vc.sourceType = .camera
        vc.allowsEditing = false// true
        vc.showsCameraControls = true
        vc.delegate = self
        present(vc, animated: true, completion: nil)
    }
}

extension ViewController: UINavigationControllerDelegate, UIImagePickerControllerDelegate{
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        picker.dismiss(animated: true, completion: nil)
    }
    
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        picker.dismiss(animated: true, completion: nil)
    }
}

extension ViewController: VNDocumentCameraViewControllerDelegate{
    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
        controller.dismiss(animated: true, completion: nil)
    }
    
    func documentCameraViewControllerDidCancel(_ controller: VNDocumentCameraViewController) {
        controller.dismiss(animated: true, completion: nil)
    }
    
    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFailWithError error: Error) {
        controller.dismiss(animated: true, completion: nil)
    }
}

0 ответов

Другие вопросы по тегам