iOS系统键盘的遮盖问题

前言

当键盘和弹框同时存在的时候,如图,如果不做处理,键盘总是会处在窗口的最前端,遮盖住弹框。与实际想要的结果:弹窗置于键盘之上不符。上家公司遇到这种情况时,就简单的说了句无法实现,应付了事(主要是比较烦感不做作的产品每次修改需求从来就是用户体验不好 ,鬼知道没有进行调研的用户体验到底是神马)。今天又遇到了这种情况,秉着对公司负责也对自己负责的态度,查看了应用下的 window 操作。


iOS系统键盘的遮盖问题_第1张图片
IMG_4825.PNG

出现键盘置于弹框之上的原因

  1. 系统键盘所在的 window 优先级是最高的,(了解到这,如果你单纯的以为,修改弹窗的 windowLevel == MAXFLOAT 就能解决问题。。。。。。哈哈,孩子,你还是太年轻啦~~~ )
  2. 经打印,得知:iOS 9 之前,键盘是置于 UITextEffectsWindow 上的;iOS 9 之后,在 UIRemoteKeyboardWindow 上
  3. 下图是跑在 Xcode 8.3.3,模拟器 版本 iOS 10.3 上的结果


    iOS系统键盘的遮盖问题_第2张图片
    35AAA6A7-8AE4-4A8E-90F8-B3B0DAB7BF20.png

    D155C526-0759-4177-8C53-6BF2894A3669.png

结论

在需要的时机,将弹框加到键盘的 window 上即可。如图展示


iOS系统键盘的遮盖问题_第3张图片
C98C984B-99D8-4BA3-98BF-C9260127C200.png

你可能感兴趣的:(iOS系统键盘的遮盖问题)