Невозможно удалить 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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