美文网首页
日常小记-已消失键盘自动显示和隐藏问题

日常小记-已消失键盘自动显示和隐藏问题

作者: 爱打码滴小燕子 | 来源:发表于2017-09-29 10:30 被阅读10次

    昨天leader反馈过来一个很恶心的问题,App首次登陆,验证密码通过后,会提醒用户是否开启指纹解锁。当用户点击确定的时候,正确的做法是应该显示指纹解锁的页面,但是每次在这个时候,都会伴随着动画-自动弹出键盘并隐藏掉...然而这个界面并没有UITextField或者是UITextView。

    反复测试,发现键盘貌似是上个界面,输入密码的时候传递过去的(因为推出下一个界面时键盘是什么样子大的,动画的时候的键盘就是什么样子的)。所以一开始我的思路是因为上个界面消失的时候没有取消第一响应。

    但是事实证明并非如此。后来我想,可能是动作执行了,但是动画毕竟有时间 ,可能时间没走完,所以采用了dispatch_after,延迟2.5秒(系统键盘收起的时间)后再推出下一个界面。然而还是没有帮助。

    问题的症结到底是什么呢?
    事实上,之所以会自动弹出来键盘,是因为提醒用户开启指纹解锁的视图UIAlertView造成的。UIAlertView调用的时候,会暂时停止系统动画效果,结束后再重新寻找动画,这就出现了键盘出现再隐藏的效果。
    解决的方法其实是也挺简单的。也是采用的延时思路。

    //延时,确保动画执行完毕再显示alert
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.6 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                //第一次登录,弹框提醒用户是否开启指纹密码。
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"是否启用指纹密码" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
                [self.view addSubview:alert];
                [alert show];
            });
    

    相关文章

      网友评论

          本文标题:日常小记-已消失键盘自动显示和隐藏问题

          本文链接:https://www.haomeiwen.com/subject/cvobextx.html