Черный экран внизу в ландшафтном режиме при отклонении клавиатуры IQKeyboardManager

Я использую последнюю версию IQKeyboardManagerSwift. У меня возникла проблема с черным экраном внизу -> Когда я нажимаю на текстовое поле в ландшафтном режиме устройства, появляется клавиатура, и вид контроллера и фонового изображения повышается, черный экран окна виден снизу. Вид не возвращается в исходное положение после сброса клавиатуры.

Я хочу переместить контейнерный вид текстового поля вверх, а не вид контроллера и фонового изображения, контейнерный вид горизонтально и вертикально центрируется в автоматическом макете. Я пытался добавить IQLayoutGuideConstraint к представлению контейнера, но безуспешно. было бы здорово, если бы вы могли предоставить некоторую информацию для ее достижения. пожалуйста, смотрите скриншот раскадровки ниже

Изображение StoryBoard

Устройство Image1

Устройство Image2 Устройство Image3

4 ответа

Попробуйте удалить свой firstResponder от viewDidLoad, и вставьте его viewDidAppear вместо этого вот так

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(true)


    yourTextField.becomeFirstResponder()
}

обходной путь, поместите в свой вид ВК:

       override func viewWillAppear(_ animated: Bool) {
    if let window = (UIApplication.shared.delegate?.window)! as UIWindow? {
        window.backgroundColor = UIColor.white
    }
}

Вы пробовали обновить свои стручки?

pod IQKeyboardManagerSwift 

PS Не устанавливайте текстовое поле как firstResponder в вашем viewController.

Например:- (в методе ViewDidLoad)

[self.yourTextField becomeFirstResponder];

Если вы настроили выше. Пожалуйста, прокомментируйте (удалите) эту строку, а затем попробуйте.

Всего наилучшего.

Другие вопросы по тегам