Невозможно удалить UITextField из подслоев.IOS

Программируем под IOS
Anonymous
Невозможно удалить UITextField из подслоев.

Сообщение Anonymous »

Новичок в Swift и работе над собственным кодом iOS с помощью React Native. Я пытаюсь использовать общий подход UITextField для блокировки снимков экрана на определенных экранах. У меня есть функция initTextField здесь:

Код: Выделить всё

private var secureTextField: UITextField?

private func initTextField() {
let boundLength = max(UIScreen.main.bounds.size.width, UIScreen.main.bounds.size.height)

secureTextField = UITextField(frame: CGRect(x: 0, y: 0, width: boundLength, height: boundLength))
secureTextField!.isSecureTextEntry = true
secureTextField!.isUserInteractionEnabled = false
secureTextField!.backgroundColor = .red

if let rootView = UIApplication.shared.keyWindow?.rootViewController?.view {
for subview in rootView.subviews {
subview.addSubview(secureTextField!)
subview.layer.superlayer?.addSublayer(secureTextField!.layer)
secureTextField!.layer.sublayers?.last?.addSublayer(subview.layer)
}
}
}
Это работает. Скриншоты получаются красными и на переключателе приложений приложение тоже красное. В итоге мне пришлось использовать это определение для rootView, не уверен, что это потому, что я использую React Native, но в любом случае оно работает.
На некоторых экранах я хочу отключить это и разрешить снимки экрана, но не понял, как это сделать. Как я могу отменить/удалить UITextField во всех подслоях/подпредставлениях?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -sublayers

Вернуться в «IOS»