【问题标题】:Clear the scanned images cache in VNDocumentCameraScan Swift清除 VNDocumentCameraScan Swift 中的扫描图像缓存
【发布时间】:2021-01-06 21:44:36
【问题描述】:

我使用视觉套件进行文档扫描。我可以扫描并保存文档,但是在关闭后返回此屏幕后,旧的扫描图像会显示在屏幕的左下角。解雇后如何清除扫描数组?

代码:

let vc = VNDocumentCameraViewController()

override func viewDidLoad() {
     super.viewDidLoad() 
     vc.delegate = self 
}

//Save button action in document VC

    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
            print("Found \(scan.pageCount)")
            var imgArray: Array<UIImage> = []
            for i in 0 ..< scan.pageCount {
                let image = scan.imageOfPage(at: i)
                imgArray.append(image)
            }
            dismiss(animated: true) {
                self.getFileName(img: imgArray)
            }
        }

Marked the scanned images icon at the bottom left

【问题讨论】:

  • 您的 VNDocumentCameraViewController 在完成扫描后是否被销毁?您可能会重复使用它的实例吗?
  • 你能说我应该在哪里销毁 VNDocumentCameraViewController 吗? func documentCameraViewControllerDidCancel(_ controller: VNDocumentCameraViewController) { // You are responsible for dismissing the controller. controller.dismiss(animated: true) }
  • 我推荐dev.to/nemecek_f/… 扫描文档。 @andrey.krukovskiy
  • 显示创建 VNDocumentCameraViewController 实例的代码
  • @andrey.krukovskiy let vc = VNDocumentCameraViewController().override func viewDidLoad() { super.viewDidLoad() vc.delegate = self }

标签: ios swift visionkit vndocumentcameraviewcontroller


【解决方案1】:

似乎,您在视图控制器对象的vc 常量中保留了指向 VNDocumentCameraViewController 实例的链接。当你第二次显示它时,相同的实例会被重用。

尝试像这样创建和呈现它:

func showDocumentCamera() {
   let vc = VNDocumentCameraViewController()
   vc.delegate = self
   present(vc, animated: true)
}

【讨论】:

    猜你喜欢
    • 2011-08-21
    • 2016-12-29
    • 2013-06-23
    • 1970-01-01
    • 2012-05-23
    • 2018-02-15
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多