我想通过显示VNDocumentCameraViewController更新视图中显示的措辞。
例如,

ios - 更改VNdocumentCameraViewController的措辞-LMLPHP

在这张照片中,我想更改

  • 将文档置于视图中-> Hello world
  • 取消->停止
  • 自动->删除按钮

  • 我不确定VNDocumentCameraViewController具有哪些属性,因此无法覆盖子类中的值。
    如何将这些按钮标题覆盖为其他值?

    最佳答案

    简短的答案是,如果您要发布到App Store,则不允许这样做; Apple提供了UI,并且由于他们没有提供自定义UI的方式,因此您应该保持原样。更长的答案是,您可以遍历视图层次结构并找出哪些标签包含哪些文本,然后只需在这些UILabel上更改文本即可。这样做有很多原因,这很不好:
    1)它可以使您被App Store拒绝
    2)实现可以在版本之间进行更改,从而破坏您的应用
    3)文本已本地化,因此您的更改将无法使用其他语言

    有了该警告,下面是执行DFS搜索以找到与某个谓词匹配的视图的代码,例如,作为UILabel将显示某些特定文本。

    import SwiftUI
    import PlaygroundSupport
    
    let a = UIView()
    let b = UIView()
    let c = UIView()
    let l = UILabel()
    let z = UILabel()
    
    a.addSubview(b)
    a.addSubview(c)
    b.addSubview(z)
    c.addSubview(l)
    l.text = "hello"
    
    extension UIView {
      func child(matching predicate: (UIView) throws -> Bool) rethrows -> UIView? {
        for child in subviews {
          if try predicate(child) {
            return child
          }
          if let found = try child.child(matching: predicate) {
            return found
          }
        }
        return nil
      }
    }
    
    print(l === a.child(matching: {($0 as? UILabel)?.text == "hello"}))
    

    关于ios - 更改VNdocumentCameraViewController的措辞,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59615267/

    10-14 19:58
    查看更多