我一直在研究iOS自定义键盘(在.xib文件中),但我无法在故事板中更改高度。有没有办法在故事板中更改键盘的高度,还是我必须找到一种以编程方式进行操作的方法?
这是我的解决方案,因为Apple Documentation建议:
您可以使用“自动布局”调整自定义键盘主视图的高度。默认情况下,根据屏幕大小和设备方向,自定义键盘的大小可与系统键盘匹配。系统始终将自定义键盘的宽度设置为等于当前屏幕宽度。要调整自定义键盘的高度,请更改其主视图的高度约束。
override func viewWillAppear(animated: Bool) {
let desiredHeight:CGFloat!
if UIDevice.currentDevice().userInterfaceIdiom == .Phone{
desiredHeight = 259
}else{
if UIDevice.currentDevice().orientation == .Portrait{
desiredHeight = 260
}else {
desiredHeight = 300
}
}
let heightConstraint = NSLayoutConstraint(item: view, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: desiredHeight)
view.addConstraint(heightConstraint)
}
文档说,你可以在布局后调整你的键盘高度,所以你可以使用viewWillAppear
这样做。
你想要查看这个网站。它提供了很多信息! custom keyboard
在iOS 9到UIInputView类中添加了属性allowsSelfSizing
,默认为NO
。当设置为YES
时,iOS不会添加高度约束,这等于默认键盘的高度。在这种情况下,您负责提供足够的约束来确定高度(因此至少需要一个子视图)。