我想通过显示VNDocumentCameraViewController更新视图中显示的措辞。
例如,
在这张照片中,我想更改
我不确定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/