首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改VNdocumentCameraViewController的措辞

更改VNdocumentCameraViewController的措辞
EN

Stack Overflow用户
提问于 2020-01-06 16:04:07
回答 1查看 794关注 0票数 1

我想通过展示VNDocumentCameraViewController来更新视图中显示的文字。例如,

在这张照片里,我想改变一下,

  1. 定位文档视图-> Hello
  2. Cancel -> Stop
  3. Auto ->删除

按钮

我不确定VNDocumentCameraViewController有哪些属性,所以不能覆盖子类中的值。如何才能将这些按钮标题重写为不同的值?

EN

回答 1

Stack Overflow用户

发布于 2020-01-06 20:46:44

简单地说,如果您要发布到Apple,就不允许这样做;Apple提供了UI,并且由于它们没有提供定制它的方法,所以应该保持原样。更长的答案是,您可以遍历视图层次结构,找出哪些标签包含哪些文本,然后您可以简单地更改这些UILabels上的文本。这样做是不好的,原因有很多: 1)它可能使您从应用程序商店被拒绝;2)实现可以在不同版本之间更改,破坏您的应用程序3)文本是本地化的,因此您的更改不会在其他语言中工作。

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

代码语言:javascript
复制
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"}))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59615267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档