swift iOS11 – 识别keyboardSize高度不再起作用

swift iOS11 – 识别keyboardSize高度不再起作用,第1张

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

对于iOS10设备,我使用此逻辑来检测,如果键盘将隐藏特定的输入字段(在我的情况下是文本字段).如果是这种情况,键盘将显示在最后一个活动文本字段下,以使用户能够正确输入.

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

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

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

if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue

iOS10调试器输出

keyboardSize CGRect(origin =(x = 0,y = 568),size =(wIDth = 320,height = 216))

iOS11调试器输出

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

下面你可以看到完整的代码 – 它一直工作到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)                    }                }            }        }    }}

更新2017/09/20

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

使用UIKeyboardFrameEndUserInfoKey代替UIKeyboardFrameBeginUserInfoKey 总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1089723.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存