У меня была такая же проблема. Я предполагаю, что у вас не установлена высота зеленого блока, потому что вы хотите, чтобы он заполнил оставшееся пространство клавиатуры. Если вы хотите, чтобы клавиатура имела ПОСТОЯННУЮ высоту, вы можете просто установить ограничение по высоте для зеленого блока, и все готово, но из-за размеров экрана и ориентации вам, вероятно, не нужна одна высота для всего.
В iOS 9 размер пользовательской клавиатуры по умолчанию был таким же, как у системной клавиатуры. Поэтому, если вы запустите это в iOS 9, зеленый блок заполнит оставшееся пространство в зависимости от этих размеров. В iOS 10 по какой-то причине нет высоты по умолчанию, и поскольку ваш зеленый блок не имеет ограничений по высоте, он считает, что высота равна нулю.
Чтобы исправить это, вам нужно установить высоту клавиатуры. Это код, который я написал, чтобы справиться с этим (и пока все хорошо). Поместите это в класс keyboardviewcontroller перед ViewDidLoad, и все будет готово:
//***************************
//create constraint variable before function
var constraint = NSLayoutConstraint()
//function to set height
func setKeyboardHeight () {
let screenSize = UIScreen.mainScreen().bounds.size
let screenH = screenSize.height;
self.view.removeConstraint(constraint)
//you can set the values below as needed for your keyboard
if screenH >= 768 {
//for iPad landscape or portrait
self.constraint = NSLayoutConstraint(item: self.view, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 0.0, constant: 300.0)
self.view.addConstraint(self.constraint)
} else if screenH >= 414 {
//for iPhone portrait AND iPhone Plus landscape or portrait
self.constraint = NSLayoutConstraint(item: self.view, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 0.0, constant: 220.0)
self.view.addConstraint(self.constraint)
} else {
//for iPhone landscape
self.constraint = NSLayoutConstraint(item: self.view, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 0.0, constant: 140.0)
self.view.addConstraint(self.constraint)
}
}
//sets height when keyboard loads
override func updateViewConstraints() {
super.updateViewConstraints()
// Add custom view sizing constraints here
setKeyboardHeight()
}
//sets or changes height when device rotates
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
setKeyboardHeight()
}
//***************************
person
iOS_Mouse
schedule
15.09.2016