键盘上方的建议有多高?

时间:2014-12-28 02:59:09

标签: ios swift

func keyboardWillShow(notification: NSNotification) {
    let userInfo = notification.userInfo as NSDictionary!
    let frameNew = (userInfo[UIKeyboardFrameEndUserInfoKey] as NSValue).CGRectValue()
    let insetNewBottom = tableView.convertRect(frameNew, fromView: nil).height
    let insetOld = tableView.contentInset
    let insetChange = insetNewBottom - insetOld.bottom
    let overflow = tableView.contentSize.height - (tableView.frame.height-insetOld.top-insetOld.bottom)

    let duration = (userInfo[UIKeyboardAnimationDurationUserInfoKey] as NSNumber).doubleValue
    let animations: (() -> Void) = {
        if !(self.tableView.tracking || self.tableView.decelerating) {
            // Move content with keyboard
            if overflow > 0 {                   // scrollable before
                self.tableView.contentOffset.y += insetChange
                if self.tableView.contentOffset.y < -insetOld.top {
                    self.tableView.contentOffset.y = -insetOld.top
                }
            } else if insetChange > -overflow { // scrollable after
                self.tableView.contentOffset.y += insetChange + overflow
            }
        }
    }
    if duration > 0 {
        let options = UIViewAnimationOptions(UInt((userInfo[UIKeyboardAnimationCurveUserInfoKey] as NSNumber).integerValue << 16)) // http://stackoverflow.com/a/18873820/242933
        UIView.animateWithDuration(duration, delay: 0, options: options, animations: animations, completion: nil)
    } else {
        animations()
    }
}

我有一个工具栏,当选中工具栏中的文本视图时,键盘下方会出现。工具栏然后向上滑动,但只是在键盘上方,但它仍然隐藏在最近的iOS更新之一的键盘上方的新建议功能下面。

如何确保工具栏位于单词建议之上?

1 个答案:

答案 0 :(得分:1)

你可以隐藏TEXTVIEW.autocorrectionType = UITextAutocorrectionType.No

这些建议。

或者

使用输入附件视图,如下所示: TEXTVIEW.inputAccessoryView =您的自定义视图;所以你不需要知道建议工具栏的高度,创建你的视图和TEXTVIEW.inputAccessoryView会自动将它放在建议之上