iOS 13 - камера зависает в VNDocumentCameraViewController - PullRequest
1 голос
/ 31 октября 2019

При использовании VNDocumentCameraViewController от VisionKit для сканирования документов камера зависает через несколько секунд. Сканирование реализовано в ViewController, который используется в SwiftUI.

Реализация DocumentScannerViewController :

import UIKit
import VisionKit
import SwiftUI

final class DocumentScannerViewController: UIViewController, VNDocumentCameraViewControllerDelegate, UIViewControllerRepresentable {
    public typealias UIViewControllerType = DocumentScannerViewController

    public func makeUIViewController(context: UIViewControllerRepresentableContext<DocumentScannerViewController>) -> DocumentScannerViewController {
        return DocumentScannerViewController()
    }

    public func updateUIViewController(_ uiViewController: DocumentScannerViewController, context: UIViewControllerRepresentableContext<DocumentScannerViewController>) {
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let scannerViewController = VNDocumentCameraViewController()
        scannerViewController.delegate = self as VNDocumentCameraViewControllerDelegate
        view.addSubview(scannerViewController.view)
    }

    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
    }

    func documentCameraViewControllerDidCancel(_ controller: VNDocumentCameraViewController) {
    }

    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFailWithError error: Error) {
    }
}

И реализация ContentView:

import SwiftUI

struct ContentView: View {
    var body: some View {
        DocumentScannerViewController()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Камера сканирования документов запускается и работает в течение короткого периода времени. Тогда камера просто перестает двигаться.

Есть идеи, что вызывает такое поведение?

...