簡體   English   中英

更改 VNdocumentCameraViewController 的寫法

[英]Change the wording of VNdocumentCameraViewController

我想通過呈現 VNDocumentCameraViewController 來更新視圖中顯示的措辭。 例如,

在此處輸入圖片說明

在這張照片中,我想改變,

  1. 在視圖中定位文檔 -> Hello world

  2. 取消 -> 停止

  3. 自動 ->刪除按鈕

我不確定 VNDocumentCameraViewController 具有哪些屬性,因此無法覆蓋子類中的值。 如何將這些按鈕標題覆蓋為不同的值?

簡短的回答是,如果您重新發布到 App Store,則不允許您這樣做; Apple 提供了 UI,因為他們沒有提供自定義它的方法,所以你應該保持原樣。 更長的答案是您可以遍歷視圖層次結構並找出哪些標簽包含哪些文本,然后您可以簡單地更改這些 UILabel 上的文本。 這樣做很糟糕,原因有很多:1)它會讓你被應用商店拒絕 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"}))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM