码迷,mamicode.com
首页 > 移动开发 > 详细

ios8以后,使用UIAlertViw时pop/push页面后,键盘闪一下的问题

时间:2016-08-12 14:59:18      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

代码为

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"感谢你对我们提出的意见或建议,你的支持就是我们进步的动力!" delegate:self cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil];
[alert show];

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex==0) {
        [self backForward];
    }
}

效果如图

技术分享

这是因为alertView的动画和键盘动画起冲突了
解决方法分为两种
①用UIAlertController,适用于ios8以后
②若还是想用UIAlertView,那么可以用如下方法

alertview show的时候写个主线程延迟,pop也延迟

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"感谢你对我们提出的意见或建议,你的支持就是我们进步的动力!" delegate:self cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.4f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    [alert show];
});
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex==0) {
        [self performSelector:@selector(backForward) withObject:nil afterDelay:0.25f];
    }
}

好了的效果如下

技术分享

ios8以后,使用UIAlertViw时pop/push页面后,键盘闪一下的问题

标签:

原文地址:http://www.cnblogs.com/Apologize/p/5764806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!