Вы можете загрузить образец проект, демонстрирующий вопрос ниже здесь: https://github.com/DimaVartanian/keyboard-extension-height-bugрасширения клавиатуры теряет высоту в ИО 10 при попытке размера автоматически в некоторых случаях
При создании расширения клавиатуры и не указав конкретную высоту для ее компонентов но вместо этого привязывая их к представлению/inputView, так что теоретически система будет определять их высоту, основанную на окружении и ориентации, в некоторых ситуациях высота вместо этого превращается в 0, а клавиатура измельчается (за исключением всего, что имеет бетонную высоту таких как ярлык собственного размера или кнопка).
Это, похоже, происходит на iOS 10. На iOS 9 детские представления правильно изменяются, чтобы соответствовать стандартной высоте клавиатуры.
Существует несколько сценариев, которые могут проявиться, и этот проект демонстрирует базовый характер. Она начинается с базовым шаблоном расширения клавиатуры с по умолчанию кнопки «рядом с клавиатурой» и ограничениями 2 размера она поставляется с:
self.nextKeyboardButton.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
self.nextKeyboardButton.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
Далее мы создаем один другой вид, что мы хотим, чтобы заполнить пространство надтаблицы без определения конкретного размера для себя:
let anotherView = UIView()
anotherView.backgroundColor = UIColor.red
anotherView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(anotherView)
anotherView.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
anotherView.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true
anotherView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
Теперь, скажем, мы просто хотим, чтобы закрепить этот новый вид нижней части нашей клавиатуры надтаблицы. Мы бы просто сделать что-то вроде:
anotherView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
Результат выглядит следующим образом:
Этот макет именно то, что мы ожидаем. Теперь вместо этого давайте привяжем новый вид к верхней части нашей следующей кнопки. Мы избавляемся от ограничения мы только что добавили, и заменить его
anotherView.bottomAnchor.constraint(equalTo: self.nextKeyboardButton.topAnchor).isActive = true
по логике вещей, в результате чего высота должна быть такой же (определяется системой)
В результате в настоящее время это:
На iOS 9 он работает так, как ожидалось, но на iOS 10 гибкий вид высоты изменяется до 0, а все оставшееся - кнопка фиксированной высоты.
Нет сообщений о конфликтующих ограничениях. Я пытаюсь выяснить, что может быть причиной этого, и почему это произойдет только на iOS 10.
Вы получили какие-либо ответ ? Мы сталкиваемся с той же проблемой, я был бы рад получить обновление, если оно у вас есть. –
Нет. Просто ошибка, и вы должны найти способ сделать свои ограничения без его запуска. Был просто проб и ошибок для меня. – Dima
@ Дима вы получили ответ на этот вопрос? – Ramakrishna