增加和减少iOS8自定义键盘大小

时间:2014-08-26 14:34:31

标签: ios swift keyboard ios8

我在iOS8中制作自定义键盘,我希望能够增加和减小键盘的大小。我从iOS文档中了解到,使用此代码加载后,您可以增加键盘的高度:

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let expandedHeight:CGFloat = 500
let heightConstraint = NSLayoutConstraint(item:self.view,
    attribute: .Height,
    relatedBy: .Equal,
    toItem: nil,
    attribute: .NotAnAttribute,
    multiplier: 0.0,
    constant: expandedHeight)
self.view.addConstraint(heightConstraint)
}

但是这个代码的问题是,如果expandHeight是500开始,如果在键盘运行的稍后时间我希望将其增加到600,例如,没有任何反应,有时键盘会崩溃。 / p>

当我增加高度时,还有其他方法可以增加和减少键盘的高度吗?

此外,我一直在使用向上滑动手势来增加键盘的高度,并使用向下滑动手势来降低键盘的高度。你可以在不抬起手指的情况下上下滑动,并将其注册为向上和向下的手势吗?

1 个答案:

答案 0 :(得分:1)

请查看来自@ skyline75489的accepted answer - 这是唯一对我有用的解决方案。

和你一样,我的键盘有一个手势识别器,可以在短/高值之间切换键盘高度。我的手势识别器调用一个方法,将landscapeHeight / portraitHeight设置为适当的值,然后调用[self updateViewConstraints]来修改高度约束。

我使用两个独立的手势识别器;一个用于向上滑动,另一个用于向下滑动。您可以使用单个平移手势识别器来替换它们,当手指仍在按下时,它会继续跟踪,但我不认为您可以在跟踪时实时调整高度。