Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了swift iOS11 – 识别keyboardSize高度不再起作用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我刚注意到我的键盘高度识别码不再适用于iOS11. 对于iOS10设备,我使用此逻辑来检测,如果键盘将隐藏特定的输入字段(在我的情况下是文本字段).如果是这种情况,键盘将显示在最后一个活动文本字段下,以使用户能够正确输入. 对于iOS 11,键盘高度的识别不起作用. 键盘的Helper类示例将显示逻辑 这只是keyBoardWillShow所做的一个例子 – >它只是检查,如果视图需要移动到键盘上
我刚注意到我的键盘高度识别码不再适用于iOS11. @H_616_15@对于iOS10设备,我使用此逻辑来检测,如果键盘将隐藏特定的输入字段(在我的情况下是文本字段).如果是这种情况,键盘显示在最后一个活动文本字段下,以使用户能够正确输入.

@H_616_15@对于iOS 11,键盘高度的识别不起作用.

@H_616_15@键盘Helper类示例将显示逻辑@H_607_20@这只是keyBoardWillShow所做的一个例子 – >它只是检查,如果视图需要移动到键盘上方,如果键盘将隐藏文本字段.

@H_616_15@我做了一些调试,发现下面的代码行在iOS 10和iOS 11之间的工作方式不同:

if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSvalue)?.cgRectValue
@H_616_15@iOS10调试器输出

@H_616_15@keyboardSize CGRect(origin =(x = 0,y = 568),size =(width = 320,height = 216))

@H_616_15@iOS11调试器输出

@H_616_15@keyboardSize CGRect(origin =(x = 0,height = 0))

@H_616_15@下面你可以看到完整的代码 – 它一直工作到iOS 10.3

func keyboardWillShow(notification: Nsnotification,view: UIView,activeTextField: UITextField?,scrollView: UIScrollView?) {
    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSvalue)?.cgRectValue {
        if view.frame.origin.y == 0{
            var aRect : CGRect = (view.viewWithTag(2)?.framE)!
            aRect.size.height -= keyboardSize.height
            if let activeField = activeTextField {
                let tempPoint = CGPoint(x: activeField.frame.origin.x,y: activeField.frame.origin.y + 20)
                if (aRect.size.height < tempPoint.y){
                    view.frame.origin.y -= keyboardSize.height
                    if let scrollView = scrollView {
                        let bottomOffset = CGPoint(x: 0,y: scrollView.contentSize.height - scrollView.bounds.size.height)
                        scrollView.setContentOffset(bottomOffset,animated: truE)
                    }
                }
            }
        }
    }
}
@H_616_15@更新2017/09/20

@H_616_15@我现在试了好几次.有时它会显示iOS11的键盘高度值 – 现在我完全糊涂了……

使用UIKeyboardFrameEndUserInfoKey代替UIKeyboardFrameBeginUserInfoKey

大佬总结

以上是大佬教程为你收集整理的swift iOS11 – 识别keyboardSize高度不再起作用全部内容,希望文章能够帮你解决swift iOS11 – 识别keyboardSize高度不再起作用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。