公司的平板项目,偶然间有人手滑,点击键盘右下角的时候,长按后把键盘缩小了,然后发现,再次弹起键盘的时候,整个页面都卡死,退出重新登录,输入账号密码的时候,整个页面都操作不了。
好吧,开始找问题。首先我想到的是不是页面上有个透明层级把页面盖住了,然后打开视图层级一看,并没有。全局断点也没反应,一看CPU,好家伙,直接100% 了。
为什么缩小键盘后会把CPU拉满呢,首先我想到的肯定是和哪个三方库冲突了,刚好我项目里用了IQKeyboardManager,我怀疑就是它的问题。
禁用IQKeyboardManager后,果然好了,但是项目里需要用IQKeyboardManager,我只能继续解决问题。对比正常键盘和缩小键盘,我发现 IQKeyboardManager 的 Toolbar 在正常的键盘模式下,是等屏幕长的,缩小后它会不会计算不出来frame?
[IQKeyboardManager sharedManager].enableAutoToolbar = NO; 最后,禁用AutoToolbar后,所有问题解决。至于禁用后弹起小键盘页面有点丑的问题,项目经理说不管它,能用了就行,嗯,为项目经理点赞👍🏻。
网友评论